linux面向对象,讨论一下Linux中的面向对象

C语言是一个为结构化而设计的一种高级语言,并没有对面向对象提供支持

而Linux使用了C语言来实现,估计主要是由于C的效率以及灵活性的原因。

可是,面向对象思想活跃的今天,我们可以看到面向对象对于我们的程序编写以及管理都带来了方便。

这里,我想大家一起来讨论一下Linux源代码中,面向对象的应用。以提高我们在编写类似程序的代码质量。

由于我接触Linux的时间比较的短,接触内核代码的时间也是很短。我不知道面向对象这个词用在这里是不是正确,如果不正确,还请大家指正。

在阅读代码的过程中,我发现,Linux使用了struct这个来实现对象,函数指针来实现方法。比如说,设备是一个类,每一个驱动程序都将这个类实例化,然后交给内核。但也许是我在面向对象上面的理解还不够透彻,当我自己要实现一个驱动的时候,我发现却遇到了困难。我无法实现自己的抽象。比如说,一个驱动程序,一个操作需要等待几次中断。我想把驱动分成总线驱动和功能驱动两个部分来操作,可是在这个层次划分上我就迷糊了。

也许,我们应该寻找一个模式,来将Linux下的这种方法理论化,来知道我们做相似的设计

|

不要迷信OO,该用OO的时候就用,不该用的时候就不用。

操作系统本身就是底层的东西,抽象度那么高干什么?你难道想让内核慢的像蜗牛?

OO符合人类分析问题的一般思路,提高开发效率而已,不是万能丹。

难道操作系统也需要快速开发?

|

Linux下也有C++,不过写低层的东西还是用C比较好。

|

请问,用个struct就算面向对象?那么int,long是不是也能看成对象?

要说内核有面向对象的思想,顶多在函数指针那边还算是有点意思。

别在这里咬文嚼字了,有意义么?

再说了,C的编译速度和C++的编译速度一样么?现在你编译一个2.6的内核要多少时间?要是用C++,至少得双倍的时间。

不用什么都抽象,什么都OO!

|

请问,用个struct就算面向对象?那么int,long是不是也能看成对象?

要说内核有面向对象的思想,顶多在函数指针那边还算是有点意思。

别在这里咬文嚼字了,有意义么?

***************************************************************

世界上的所有的东西都算是对象

int, long 看成对象也无不可呀

我们存int, long 的register都是对象,呵呵

|

照你这种看法,C也可以看成是OO了。

|

如你所说,C不支持OO,但是Linux是纯C,你还在这里谈什么"面向对象的思想"?

别什么都是"思想","思想"的.

少谈理论,多做事.

|

不知道楼上的兄弟看没看过《linux driver 2nd》里边很明显的声明了具有面向对象的思想

就在字符设备驱动编写这一章

讨论有没有使用没什么意义

不过确实是使用了:)

|

得了,也不知道你说的理论想应用到哪儿?想建立数学模型?

重实践?从哪儿能体现出来?

"理论重实践", 你给个例子?

|

你知道你给我什么感觉么?就是那种学了OO一阵,觉得OO是个好东西,就想什么都用OO来解决的人。

其实OO只是一种思想而已,有适用的地方,也有不适用的地方,一般真正的大型程序(我不是指那些所谓的ERP),都是高层用OO,底层用过程,也许OO的封装性太好了,编程序的时候你也懒的想到底在地下是怎么实现的了,但是现实是什么呢?计算机本身并不懂OO,只是语言的开发者为了符合人类思考的习惯,而创造了一个OO和过程之间的桥梁。操作系统本身基本上是过程的,可能某些地方稍微使用了一点OO的思想,当然这是局部的情况,至于整体的Architecture,你说是OO也罢,不是也罢,(毕竟把OS分成几大块,我觉得也算不上OO)。我不知道你是什么水平,但是你所说的“轻理论重实践”,真是一点根据都没有。国内的理论不行是明摆着的,但是“实践”方面就水平高?国内大部分还不是跟着国外的屁股走?看看Sourceforge上的项目,几个是中国人弄得?核心技术中国强的又有多少?

|

linux内核大量地使用了oo的思想,只是没有用C++罢了。凡是那些结构体里有函数指针表的基本都借鉴了oo的思想,而这些函数的参数中又有一个参数是指向这个结构体的指针,相当于this指针。

|

学习

|

面向对象是对面向过程的一个抽象~你必须对整个面向过程的全部流程有了概念,然后从中抽取相关的操作组成对象的概念,才能体现出 OO~绝对不是为 OO 而 OO 的,尤其在这种地方。

|

废人怎么跑这里来了???

|

我是一个新手,希望能够在大家的讨论中获得些营养。我知道,我不能为大家贡献些什么东西出来,因为我确实接触的时间太短,知道的太少,正如我们整个中国的程序员一样,只能跟在其他人后面跑,学习其他的人东西,希望能把别人的经验抽象成理论,加快我们学习和设计的能力。假以时日,我相信,我,以及整个中国的IT人们,一定能在世界上占有一席之地,为世界IT作出贡献的。

**********************************************************************************

我支持你,我是学物理的,引用一位伟大的外国的物理学家的话来鼓励大家一下

"如果你在30岁以前没有在技术上有所成就的话,你在技术上就再也不会有什么了."

仅以此话激励大家

一起努力吧,30以前做出点东西来

快乐并努力着

^_^

|

o今年25了马上就要P3了,需要抓紧时间了

|

哈哈,我是流窜作案。

|

楼上的

听说你是c++版的

跑到我们linux版来干嘛?

/

其实我也是.....

|

呵呵,我们每天都更新地方也要更新

经常去C++混

|

年龄的确不饶人,希望能在有生之年,尽心尽力的为行业贡献点力量!

|

Just work hard, then you will find a way!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值