Chinaunix

标题: 讲出LINUX系统维护人员必须学C语言的原因? [打印本页]

作者: todayhero    时间: 2009-02-11 21:26
标题: 讲出LINUX系统维护人员必须学C语言的原因?
1.我是linux系统维护人员.

2.告诉我一下.C语言对LINUX系统维护人员最大好处.能提高系统维护员哪方面技能.

3.要是有巨大好处.那我应该加深C语言那方面的理解和学习
作者: wuqing    时间: 2009-02-11 21:33
维护需要优化系统,要优化系统就要深入了解系统的组件和组件之间的关系,了解系统的内核。而Linux的内核恰恰就是主要用C语言完成,还有少部分汇编代码。
维护需要排错,有些问题,尤其是疑难问题,你可能几年才碰到一个。如果这个时候你能够迅速想出测试方案证明并找到根本原因,这个时候同时也就证明了你作为系统管理员的价值所在。
学习C语言,学习linux内核,理解Unix的设计思想,对你系统维护有百利而无一害。

除了C语言,还要好好学习Perl。
作者: which    时间: 2009-02-11 21:33
学学命令,会写shell就行.

C,别学了.
作者: todayhero    时间: 2009-02-11 21:41
shell php都可以.但是几位说的,并不能让我下决心去研究C
作者: reiase    时间: 2009-02-11 21:43
不学C,很多概念就理解不了
作者: 李某人    时间: 2009-02-11 22:02
学总比不学好 ~~~
作者: langue    时间: 2009-02-11 22:18
调整系统的时候可能需要重新编译内核,如果对 C 语言没有十分的把握,那将是很困难的一件事。
通常认为,对 Unix/Linux 的了解,是和编译内核的次数成平方正比关系的……
作者: samon_fu    时间: 2009-02-11 22:23
我的概念与大家不太一样,主要是有两个理由:

1、学了比不学好,学了后可以转研发之类的,否则可能一直停留在系统管理上面
2、知其然很好,也需要知其所以然,而系统中的绝大多数命令、工具等,都是用C实现的

还有一点理由稍微恶心点,学多点,把老板忽悠晕,觉得你很NB后,可以考虑涨工资~~~
作者: 想飞的蜗牛    时间: 2009-02-11 22:29
如果学了不能经常使用的话 还不如搞搞shell和perl
作者: scutan    时间: 2009-02-11 22:31
一个人学习新知识的速度是与他现有的知识成正比的。知识越多,越能接收更多新的知识。所以多学一点没有害处。
现者,C语言对于编程来说,确实是基本功,很重要的。对于理解其它的编程也是有一定作用的。
最后,当你在学习的时候遇到了瓶颈,然后再通过学习新的知识,获得新的想法,来突破一些瓶颈。
总之,如果你有时间,同时想以后接触更多的领域(不限于系统维护方面的),那就学C吧。
作者: todayhero    时间: 2009-02-11 23:26
现在有时间还是研究一下,会加深系统和应用程序的理解
作者: gawk    时间: 2009-02-11 23:55
这里的学习可能指的是了解吧
作者: 光速    时间: 2009-02-12 01:17
对俺来说,学c就是难!
作者: langue    时间: 2009-02-12 01:38
不讲大道理,咱不讲大道理。学以致用的道理,多数人都明白。
一定要学会编译内核,一定要重新给自己的硬件定制内核,这是基本功。内核源文件就是活生生的C代码,不懂C怎么行?
作者: langue    时间: 2009-02-12 01:43
标题: 回复 #13 光速 的帖子
没有什么难不难。你觉得难,那只是因为你基本功不扎实,把基础夯实就没这顾虑了。若是C已经很难了,那么 C++、Java 岂不都是天书?
作者: 虎皮尖椒    时间: 2009-02-12 02:02
系统管理员到底干啥的?什么场景下需要他们去编译内核?
作者: prc    时间: 2009-02-12 09:41
学完C之后你就会发现shell很好理解
学完C++之后就会发现perl, awk很好理解
作者: flw    时间: 2009-02-12 09:50
原帖由 todayhero 于 2009-2-11 21:41 发表
shell php都可以.但是几位说的,并不能让我下决心去研究C


爱学不学,不学拉倒!

作者: veking    时间: 2009-02-12 10:03
标题: 回复 #6 李某人 的帖子
万事万物都是有因果联系的,当然是知道的越多越有好处啦!
作者: chrisyan    时间: 2009-02-12 10:08
学了肯定有好处,不过你如果只是做管理员的话,其实学了也用处不大,而且你如果没机会联系,只是看书的话,学了也很容易忘。做管理员的话shell一定是要会的,sed,awk最好是也看看
作者: carve    时间: 2009-02-12 10:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: flw    时间: 2009-02-12 10:35
楼上众位笨死了,
难道还嫌自己的竞争不够激烈、因而导致工资太高麽?

作者: chh6868    时间: 2009-02-12 10:43
听说C语言要统一软件世界了,不学C行么!:emn1:
作者: dlms    时间: 2009-02-12 12:37
学c你也不会开飞机,别学了
作者: flw    时间: 2009-02-12 12:53
原帖由 dlms 于 2009-2-12 12:37 发表
学c你也不会开飞机,别学了

不会开,但是会打。
作者: yangsf5    时间: 2009-02-12 13:11
原帖由 flw 于 2009-2-12 09:50 发表


爱学不学,不学拉倒!

那是。。

to LZ:
别人求你学的,你千万别学。。
别人要你学你就学,那你太没面子了,亏大发了。
作者: dlms    时间: 2009-02-12 13:18
原帖由 flw 于 2009-2-12 12:53 发表

不会开,但是会打。

显然没听懂俺哪句话的意思。。。
作者: langue    时间: 2009-02-12 13:25
原帖由 虎皮尖椒 于 2009-2-12 02:02 发表
系统管理员到底干啥的?什么场景下需要他们去编译内核?


得,俺觉着回答什么场景需要编译内核比较困难,就说下什么场景下不需要。
比方说,Windows 系统管理员就不需要编译内核
作者: wuqing    时间: 2009-02-12 16:25
原帖由 虎皮尖椒 于 2009-2-12 02:02 发表
系统管理员到底干啥的?什么场景下需要他们去编译内核?

如果认为系统管理员就是安装系统,那楼主学习C语言可能没有必要
可是作为Linux的系统管理员,你安装有些特殊硬件的时候,你的驱动怎么安装?有些设备如HBA卡的驱动是以源代码的方式提供的,你安装的时候出错的时候怎么办?如果你还不信,麻烦你写一个Linux下的RDAC安装文档

如果你认为系统管理员不需要学习C,那可能只是因为你还没有遇到需要C的时候。从某种意义上,可能说明老板还没有把重要的事情放到你手上
作者: xuxingyu    时间: 2009-02-12 17:26
shell perl C我都喜欢
作者: beepbug    时间: 2009-02-12 19:05
原帖由 todayhero 于 2009-2-11 21:26 发表
1.我是linux系统维护人员.

2.告诉我一下.C语言对LINUX系统维护人员最大好处.能提高系统维护员哪方面技能.

3.要是有巨大好处.那我应该加深C语言那方面的理解和学习

要有巨大好处才学?这不好吧?如果抱这样态度,楼主啥也学不了的。
如果你去掉这“巨大”两字,我愿意告诉你一件事,或许对你有启发。
作者: flw    时间: 2009-02-12 20:04
原帖由 beepbug 于 2009-2-12 19:05 发表

要有巨大好处才学?这不好吧?如果抱这样态度,楼主啥也学不了的。
如果你去掉这“巨大”两字,我愿意告诉你一件事,或许对你有启发。

巨大二字反映出楼主属于典型的那种不见兔子不撒鹰的。

我想说的是,机会只给有准备的人。在你做准备的时候,你不知道会有机会在等着你;等你看到了机会的时候,已经来不及了。

艺多不压身,多学一点没坏处。
作者: cjaizss    时间: 2009-02-12 20:10
原帖由 flw 于 2009-2-12 20:04 发表

巨大二字反映出楼主属于典型的那种不见兔子不撒鹰的。

我想说的是,机会只给有准备的人。在你做准备的时候,你不知道会有机会在等着你;等你看到了机会的时候,已经来不及了。

艺多不压身,多学一点没坏处。

也难说,语言学多了人脑子会混乱的,因为很多语言语法相似,但又不同。所以我暂时不想再学新的计算机语言了
作者: honey709    时间: 2009-02-14 23:17
学习 学习 还是好的
作者: redor    时间: 2009-02-14 23:51
原帖由 todayhero 于 2009-2-11 21:26 发表
1.我是linux系统维护人员.

2.告诉我一下.C语言对LINUX系统维护人员最大好处.能提高系统维护员哪方面技能.

3.要是有巨大好处.那我应该加深C语言那方面的理解和学习



我觉得理由很简单, 现代的计算机高级语言大多数来源于C的语法, 学会了C基本学其他语言就没有障碍了
作者: fl3w    时间: 2009-02-15 00:58
原帖由 flw 于 2009-2-12 20:04 发表

巨大二字反映出楼主属于典型的那种不见兔子不撒鹰的。

我想说的是,机会只给有准备的人。在你做准备的时候,你不知道会有机会在等着你;等你看到了机会的时候,已经来不及了。

艺多不压身,多学一点没坏处。


人生五十年,只怕不是,哎。
作者: flw    时间: 2009-02-15 14:51
原帖由 cjaizss 于 2009-2-12 20:10 发表

也难说,语言学多了人脑子会混乱的,因为很多语言语法相似,但又不同。所以我暂时不想再学新的计算机语言了

这事儿原本也十分简单,有能力就上,没能力就下来。
总书记写毛笔字原本也不是什么必须的本领,但事实上是人人都会。
作者: fire_cpp    时间: 2009-02-16 01:39
原帖由 langue 于 2009-2-11 22:18 发表
调整系统的时候可能需要重新编译内核,如果对 C 语言没有十分的把握,那将是很困难的一件事。
通常认为,对 Unix/Linux 的了解,是和编译内核的次数成平方正比关系的……


好,我写个脚本,每天24小时不断编译内核……编译一个月……这个一七得七……二七一十四……嗯,不出一个月我就很了解Linux了。

哈哈哈,玩笑~玩笑。

其实还是有道理的。多编译几次,搞懂编译选项的意思,感兴趣的选项可以结合源代码来了解,这样多做几次,绝对对Linux的了解要深入许多。
作者: ewjeok    时间: 2009-02-16 10:00
原帖由 flw 于 2009-2-15 14:51 发表

这事儿原本也十分简单,有能力就上,没能力就下来。
总书记写毛笔字原本也不是什么必须的本领,但事实上是人人都会。


学习多种语言,只要认真去学谁都能学好,不是有没有能力的问题,主要是自己认为是否有必要的问题。
作者: gucuiwen    时间: 2009-02-16 10:45
在学习C语言和UNIX系统编程之前,对系统的理解只停留在表面的,
学习之后,你会发现对系统的理解层次有本质的飞跃。

这是我在看完<UNIX系统高级编程>后的,切实感受。

当你学习LINUX系统管理,发现遇到瓶颈,很难提高时,去把C语言和<UNIX系统高级编程>看完,看完了在回头看系统管理,高度和深度完全不一样了。就好比只会SQL语句的DBA和懂得数据库原理知道二叉树等等算法的DBA层次上更有本质区别一样。这个外人很难说清楚,等你学完后自己就会有很深刻的感受

作者: wenqing_9115    时间: 2009-02-16 10:57
原帖由 scutan 于 2009-2-11 22:31 发表
一个人学习新知识的速度是与他现有的知识成正比的。知识越多,越能接收更多新的知识。所以多学一点没有害处。
现者,C语言对于编程来说,确实是基本功,很重要的。对于理解其它的编程也是有一定作用的。
最后 ...


一个人学习新知识的速度是与他现有的知识成正比的!! 说的好,有道理!!
一语惊醒梦中人!!
作者: yezhulin1982    时间: 2009-02-16 11:42
自己觉得有必要就去学,学了还有好处的。
作者: lipingtababa    时间: 2009-02-16 11:43
chinaunix就这种垃圾帖子最火爆
作者: liaosnet    时间: 2009-02-16 12:55

我的意见是C呀,C++呀..java呀..汇编呀..能学的都学啰...

老板最喜欢这样什么都会的人..
作者: ewjeok    时间: 2009-02-16 13:17
原帖由 liaosnet 于 2009-2-16 12:55 发表

我的意见是C呀,C++呀..java呀..汇编呀..能学的都学啰...

老板最喜欢这样什么都会的人..


呵呵,以我的经验判断,这样的老板都没有什么真本事。
作者: FreeB_U    时间: 2009-02-16 13:19
lz别废话了。爱学就学不学算了。。
你学会了还有人打死你不成??
作者: langue    时间: 2009-02-16 14:33
标题: 回复 #44 liaosnet 的帖子
不,全才会让老板有很大的压力。不少老板也是做技术出身的。老板喜欢那种懂一些事,不怎么吭气,又能实实在在完成很多任务的员工。
作者: 水青虬    时间: 2009-02-16 15:34
俺一上来学的就是C
难道C不是入门必须的……
作者: LOVCAL    时间: 2009-02-16 16:39
标题: 这还用原因啊
应用与基础的关系啊:wink:
作者: chinesedragon    时间: 2009-02-16 18:44
原帖由 samon_fu 于 2009-2-11 22:23 发表
我的概念与大家不太一样,主要是有两个理由:

1、学了比不学好,学了后可以转研发之类的,否则可能一直停留在系统管理上面
2、知其然很好,也需要知其所以然,而系统中的绝大多数命令、工具等,都是用C实现 ...

支持这个
作者: beepbug    时间: 2009-02-16 18:55
1)楼主如果清楚C与UNIX的关系,就没工夫问这问题了,肯定会把精力放在学C上了。
2)编译内核,并不需要多少C知识。但是,日常的UNIX系统管理,C有极大的帮助。
3)N多年前我去香港培训,在香港计算中心。我们在2楼,8楼(?)就放着一台CRAY小巨型机,好像是C-3。一天中午休息时,中心请我们的老师(美国DEC的网络首席,刚从AT&T挖来)上去看看,我们几个也跟着去了。因为是UNIX,有点熟悉,我就在一台终端上玩。旁边几个香港人用半粤半英在讨论问题,说多了,就听出来是一台高速打印机不响应制表符,打印报表时格式乱了,已经整了大半年了,没解决(估计有可能是他们看不懂德文参考手册,没设置好)。我就随手编了一个C码,让他们试。结果是千恩万谢。我说,这很简单,无非把制表符按位置展开成空格而已。输入、输出都是标准输入输出,以后其它设备有这问题,也能用。
4)40楼的比喻很好,C对于UNIX系统管理,正好比SQL对于数据库管理。
作者: notnumb    时间: 2009-02-17 09:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: todayhero    时间: 2009-02-17 09:26
C对于UNIX系统管理,正好比SQL对于数据库管理。

要真像这样.那C实在太重要了.我现实生活中.感到大牛级的系统维护人员.一般都会C,最起码C的基础比较好.
作者: ckhitler    时间: 2009-02-17 13:50
对问题的理解不一样了,对系统的理解会更深入.
能把握更多的细节。而不是只知道粘命令.
作者: langue    时间: 2009-02-17 17:20
原帖由 todayhero 于 2009-2-17 09:26 发表
C对于UNIX系统管理,正好比SQL对于数据库管理。

要真像这样.那C实在太重要了.我现实生活中.感到大牛级的系统维护人员.一般都会C,最起码C的基础比较好.


我还真的很少听说玩 Unix 的人不会 C。
作者: OraBSD    时间: 2009-02-17 23:22
学与不学,是个问题.
作者: todayhero    时间: 2009-02-18 07:54
标题: 回复 #55 langue 的帖子
做系统维护这个圈里的人.会C的人并不多.是指能使用C开发APACHE模块.修改APACHE的BUG,划是提供APACHE的性能.

1.不是计算机专业的.在学校里没有学过C,后来选择做了系统维护.

2.即使学了C.做系统维护后,需要学习的东西太多.也不经常使用.忘的也差不多了.

[ 本帖最后由 todayhero 于 2009-2-18 07:57 编辑 ]
作者: langue    时间: 2009-02-18 08:20
标题: 回复 #57 todayhero 的帖子
现在的人,越来越讲究社会角色分工,很多原先必须的技能都在丧失,每个个体都在朝着超大机器上的一颗螺丝钉发展。最终的结果:单人的劳动不具有意义,只有很多人一起劳动才能创造价值。

想当年,CSRG那几个家伙,几天之内就写了个操作系统的框架。如今你去找找,还有几人能在一个月里写出虽简陋但有完整功能的实用系统?写不出来,就表明不够了解,意味着还有进步的空间。
作者: waternie    时间: 2009-02-18 09:03
原帖由 flw 于 2009-2-12 09:50 发表


爱学不学,不学拉倒!


同这个
作者: bxfqing    时间: 2009-02-18 11:00
如果有精力和时间,多学点有没坏事,
技多不压身
作者: bigqueues    时间: 2009-02-18 11:05
技多不压身
我shell用起来蛮熟的 C就不熟了。。
作者: james.liu    时间: 2009-02-18 11:31
必须学c?

perl+shell不够应付的时候再学吧
作者: 芳芳郁金香    时间: 2009-02-18 20:50
c很重要

不过不会也可以管理

但是那样的管理,理解的不够深刻

就好像学习和考试是两回事情
作者: AIX深入敌后    时间: 2009-02-19 15:11
:wink:
作者: ygl23    时间: 2009-02-19 15:41
本人认为,UNIX管理员如果不懂C语言,写不出C程序。那就不能是合格的UNIX系统管理,不称职。
作者: waternie    时间: 2009-02-19 15:50
网上浏览时看到的,想起这个帖子,粘过来

浮躁的人容易问:我到底该学什么;----别问,学就对了;

浮躁的人容易问:JS有钱途吗;----建议你去抢银行;

浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!

浮躁的人分两种:只观望而不学的人;只学而不坚持的人;
作者: 疯狂善良    时间: 2009-02-19 16:29
的确,linux的基本开发语言就是C,想要深入了解和研究,就要有扎实的c语言功底
作者: r2r4    时间: 2009-02-20 14:48
借个例子来说话,或许更形象点
传说中的武林秘笈无一不是内外功兼修(九阴真经,想想没有上半部的可怜的梅超风,还有那阴差阳错的九阴白骨爪)。
小说中的牛人要么是先学了精妙的剑法,然后再修高深内功(令狐冲),
或者先学了高深内功,再辅佐以外家神功,相得益彰,终能称霸武林,笑傲江湖。
令狐冲以前和人比剑还要约定对方不能使用内功。。实际打斗可都是要命的啊

再废话一点,如果哪一天,你一个看似平淡无奇的命令导致了神秘的无法挽回的后果,那时候或许很想知道怎么回事,不过已然重伤在身。
虽说绝对的安全是没有的,高手也有挂掉的时候。毕竟高深的内功能让你的震慑住那些初到毛贼~~

[ 本帖最后由 r2r4 于 2009-2-20 14:53 编辑 ]
作者: love4u    时间: 2009-02-20 19:36
原帖由 想飞的蜗牛 于 2009-2-11 22:29 发表
如果学了不能经常使用的话 还不如搞搞shell和perl



正解,严重同意
作者: 我是DBA    时间: 2009-02-20 21:53
看来我得好好学习,好好学习,天天向上。
作者: yuhongchun    时间: 2009-02-21 10:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: langue    时间: 2009-02-21 12:21
原帖由 yuhongchun 于 2009-2-21 10:34 发表
精通shell 就够了吧.


您这么说,当然够了
当 Shell 水平达到精通的时候,C 已经炉火纯青了。
作者: JohnBull    时间: 2009-02-21 13:42
不是必须学C,而是必须理解UNIX提供的底层设施,应该掌握APUE。
要学APUE不可能不会C,但是不必要求熟练应用,能看懂实例代码,做做实验就行了。
作者: smallfish    时间: 2009-02-21 13:49
看来还真的学学c
作者: lijingsandy    时间: 2009-02-21 20:39
很明显,linux主要是用C编程的,掌握C,对linux理解更透彻
作者: niejiguang    时间: 2009-02-23 09:21
应该好好学习c语言。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2