草庐IT

linux - 可以在内核中使用 OpenGL 吗?

我可以在Linux内核中使用OpenGL吗?也就是说,我想提高某些代码的性能,因此使用GPU对另一个驱动程序会有好处。可以肯定的是,GPU将固定在构建此内核的机器上。对不起,如果我听起来很天真,我只是想暂时了解一下总体情况。谢谢! 最佳答案 OpenGL是为了在屏幕上显示3D,我真的不知道你想在内核中以何种方式使用它。如果您的意思是使用GPU的计算能力进行某些计算,我认为这在内核的某些部分是可行的,但我怀疑这是否值得。 关于linux-可以在内核中使用OpenGL吗?,我们在StackO

linux - 在 Linux 内核 3.3 中添加一个新的系统调用

我对这个内核非常陌生。我想做的只是向内核添加一个新的系统调用。我遵循了这个指南:http://hekimian-williams.com/?p=20.问题是arch/x86/kernel下有syscall_table_32.S文件,但我在内核版本3.3中找不到x86系统的文件。我是否还需要编辑文件并为新添加的系统调用添加一行?或者我是否需要做其他事情让内核知道我的新系统调用?任何帮助将不胜感激。谢谢。 最佳答案 我认为在内核3.3中它转移到了这里http://lxr.free-electrons.com/source/arch/x8

linux - 在 Linux 内核 3.3 中添加一个新的系统调用

我对这个内核非常陌生。我想做的只是向内核添加一个新的系统调用。我遵循了这个指南:http://hekimian-williams.com/?p=20.问题是arch/x86/kernel下有syscall_table_32.S文件,但我在内核版本3.3中找不到x86系统的文件。我是否还需要编辑文件并为新添加的系统调用添加一行?或者我是否需要做其他事情让内核知道我的新系统调用?任何帮助将不胜感激。谢谢。 最佳答案 我认为在内核3.3中它转移到了这里http://lxr.free-electrons.com/source/arch/x8

c - Linux 内核 : Spinlock SMP: Why there is a preempt_disable() in spin_lock_irq SMP version?

Linux内核中的原始代码是:staticinlinevoid__raw_spin_lock_irq(raw_spinlock_t*lock){local_irq_disable();preempt_disable();spin_acquire(&lock->dep_map,0,0,_RET_IP_);LOCK_CONTENDED(lock,do_raw_spin_trylock,do_raw_spin_lock);}我认为在禁用本地IRQ后,没有执行路径可以抢占当前路径。因为所有常见的硬IRQ都被禁用,所以应该没有软中断发生,也没有ticktokickschedulewheel。我认

c - Linux 内核 : Spinlock SMP: Why there is a preempt_disable() in spin_lock_irq SMP version?

Linux内核中的原始代码是:staticinlinevoid__raw_spin_lock_irq(raw_spinlock_t*lock){local_irq_disable();preempt_disable();spin_acquire(&lock->dep_map,0,0,_RET_IP_);LOCK_CONTENDED(lock,do_raw_spin_trylock,do_raw_spin_lock);}我认为在禁用本地IRQ后,没有执行路径可以抢占当前路径。因为所有常见的硬IRQ都被禁用,所以应该没有软中断发生,也没有ticktokickschedulewheel。我认

linux - 为什么linux内核使用陷阱门来处理divide_error异常?

在内核2.6.11.5中,除零异常处理程序设置为:set_trap_gate(0,÷_error);根据“了解Linux内核”,用户模式进程无法访问英特尔陷阱门。但是很有可能用户模式进程也会生成divide_error.那么为什么Linux以这种方式实现呢?[编辑]我认为问题仍然存在,因为set_trap_gate()将IDT条目的DPL值设置为0,这意味着只有CPL=0(读取内核)代码可以执行它,因此我不清楚如何从用户模式调用此处理程序:#includeintmain(void){inta=0;intb=1;b=b/a;returnb;}这是用gccdiv0.c编译的.以

linux - 为什么linux内核使用陷阱门来处理divide_error异常?

在内核2.6.11.5中,除零异常处理程序设置为:set_trap_gate(0,÷_error);根据“了解Linux内核”,用户模式进程无法访问英特尔陷阱门。但是很有可能用户模式进程也会生成divide_error.那么为什么Linux以这种方式实现呢?[编辑]我认为问题仍然存在,因为set_trap_gate()将IDT条目的DPL值设置为0,这意味着只有CPL=0(读取内核)代码可以执行它,因此我不清楚如何从用户模式调用此处理程序:#includeintmain(void){inta=0;intb=1;b=b/a;returnb;}这是用gccdiv0.c编译的.以

c - 以错误的顺序调用内核模块 Init 和 Exit 函数

我正在制作一个非常简单的helloworld内核模块并出现一些疯狂的行为。这一直有效,直到我升级到内核3.3.8,现在它...嗯,它在退出时调用init函数,在初始化时调用exit函数。我已经确定我的名字是正确的//Neededformoduledefinitions#include//Neededforinitilizationmodules#include//MustdeclaresomelicenseMODULE_LICENSE("DualBSD/GPL");//Functiontobecalledoninsmod//Returns0onsuccessstaticint__ini

c - 以错误的顺序调用内核模块 Init 和 Exit 函数

我正在制作一个非常简单的helloworld内核模块并出现一些疯狂的行为。这一直有效,直到我升级到内核3.3.8,现在它...嗯,它在退出时调用init函数,在初始化时调用exit函数。我已经确定我的名字是正确的//Neededformoduledefinitions#include//Neededforinitilizationmodules#include//MustdeclaresomelicenseMODULE_LICENSE("DualBSD/GPL");//Functiontobecalledoninsmod//Returns0onsuccessstaticint__ini

c - 如何使用 -std=gnu99 编译 Linux 内核模块?

我最近学习了如何编写简单的字符驱动程序,在玩弄代码时我注意到我收到了很多针对我的C99代码的以下GCC警告:warning:ISOC90forbidsmixeddeclarationsandcode我假设这是因为主Linux内核Makefile设置为使用非C99标准进行编译。我四处搜索,在stackoverflow上找到了这个答案:HowtousemakeandcompileasC99?所以我很自然地在我的Makefile中尝试了以下内容:ccflags-y:=-std=gnu99不幸的是,这并没有消除GCC警告。我检查了make的详细输出,并验证了GCC确实在最后附加了-std=gn