oop - 为什么我们可以/不能将 OOP 概念同样多地应用到内核编程中?

标签 oop kernel

关于为什么 OOP 是正确的或者它在哪里工作等有很多问题,所以这是其中之一,但是我是从内核的角度来问它以及为什么它不用作示例。

内核主要是用 C 编写的。它几乎不使用 OOP 。关于 OOP 的普遍共识是,它是编程中的最佳范例(大多数是许多新手),但内核尽管是最具挑战性的编程领域之一,但并不使用 OOPS。

所以我想知道 OOP 在什么情况下可以工作以及为什么它不能用于 Kernel 之类的东西?我试图从工程角度了解它在某些情况下起作用的原因。你可以说 GUI 编程可能会受益于 OOP - 根据我的理解,原因是你将创建一个特定事物的多个案例,并且你可能会操纵它们 - 因此具有相同行为的不同状态是有意义的。

在更高的层面上,在哪些情况下 OOP 可以被视为自然选择,而在哪些情况下它只是过度设计?我很高兴得到关于这个问题的指示,因为这个问题已经在很多地方讨论过。

PS:我正在寻找工程方面的工作。我理解这个问题很广泛。任何有用的指示都会很好。

一些相关问题:I can't create a clear picture of implementing OOP concepts, though I understand most of the OOP concepts. Why?

最佳答案

早在 OOP 成为头条新闻之前,大多数 Unix 内核就在各种子系统中使用类似 v-table 的调用调度。例如,看看 VFS 层如何处理不同的文件系统类型。

关于oop - 为什么我们可以/不能将 OOP 概念同样多地应用到内核编程中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21751404/

相关文章:

c++ - 试图引用对象工厂中已删除的函数

c++ - 使用一个函数调用 C++ 初始化多个常量类成员

c++ - 编译器生成的静态数据成员移动成员函数

linux - 对添加到内核的系统调用的 undefined reference

c - Linux 内核模块 : dynamically loading code at runtime

c - 内核中的地址

c# - 静态类和普通类有什么区别?

java - 方法调用者和被调用者,循环类级别方法调用

android - 如何使用Android获取Linux内核的版本?

compilation - 在 OpenVZ VPS : kernel issue 上编译 DAHDI