标签: kernel

Unix环境中的高级编程第1版

我将在下学期学习本科操作系统课程,这是一本推荐的书.我想知道你是否仍然会推荐Unix环境第1版中的高级编程,而不是第二版.我知道你不能为你没有参加的课程(不是我要求的)推荐一本书,但我想知道是否有人阅读/拥有这两个版本,以及他们是否认为第1版仍然相关或由于其年龄(写于1992年)我最好投资第二版.我对unix一无所知,看了第一版之后,它看起来很丰富,让我知道你的想法

unix linux operating-system kernel

0
推荐指数
1
解决办法
538
查看次数

函数'clock'的隐式声明

大家好,我正在编写一个内核模块,想要找到特定函数的时钟周期.我已经包含了库#include </linux/time.h>然后声明了

clock_t c0;

c0 = clock();
Run Code Online (Sandbox Code Playgroud)

但是我收到了错误

隐式声明函数 clock

任何人都可以帮我解决这个问题吗?

我在Linux上使用gcc.

c time kernel

0
推荐指数
1
解决办法
1583
查看次数

如何知道某个特定内核是否基于linux?

我正在使用嵌入的实时内核.在内核文档中没有列出它是基于linux还是基于任何其他文件.我怎么知道我使用的特定内核是基于Linux的内核?我想知道内核的特性/特性,我们比较一下,知道它的基础.

kernel linux-kernel

0
推荐指数
1
解决办法
84
查看次数

虚拟内存页面替换

众所周知,当所有帧都已满时,需要在页面需求中替换一些页面.但是,页面可以用作文本,rodata,数据,这些都是从磁盘I/O调用的,但页面如堆栈,程序堆只在内存中分配,磁盘中没有副本.我想知道堆栈和堆的页面是否涉及页面替换,如果是这样,它们是否应暂时交换到磁盘中?否则,它们应该固定在内存中吗?也许这个问题与具体实施密切相关,可以采用不同的策略,但我很想知道通常的做法.

x86 operating-system kernel memory-management

0
推荐指数
1
解决办法
840
查看次数

使用task_for_pid()进行越狱开发者iPhone

  1. 我想使用task_for_pid()并附加到另一个进程,然后在iOS系统上更改其内存.我可以在授权服务API的帮助下在OS X上成功完成,但在iOS上,task_for_pid()始终返回KERN_FAILURE.我需要get task_for_pid()运行在root下的越狱iPhone上工作.正如"身份验证"中所述,iOS不提供此API,我该怎么办?

  2. 我可以在iOS模拟器上以root身份运行,如何测试需要以root身份运行的应用程序?

memory macos kernel jailbreak ios

0
推荐指数
1
解决办法
2853
查看次数

从函数指针调用函数而不分配?

通常我们必须这样做以从函数指针调用函数:

int foo()
{
}

int main()
{
    int (*pFoo)() = foo; // pFoo points to function foo()
    foo();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在Linux内核代码中,sched_class有许多函数指针:

struct sched_class {
        const struct sched_class *next;

        void (*enqueue_task) (struct rq *rq, struct task_struct *p, int flags);
        void (*dequeue_task) (struct rq *rq, struct task_struct *p, int flags);
        void (*yield_task) (struct rq *rq);
        bool (*yield_to_task) (struct rq *rq, struct task_struct *p, bool preempt);
        .....
}
Run Code Online (Sandbox Code Playgroud)

pick_next_task函数中,它定义了一个本地的sched_classnamed 实例class,并直接调用其中的函数,而不分配具有相同签名的外部函数(从...开始for_each_class):

static …
Run Code Online (Sandbox Code Playgroud)

c linux kernel linux-kernel

0
推荐指数
1
解决办法
712
查看次数

如何使用linux内核一次进行多次系统调用?

我想知道我是否可以同时进行大量的系统调用,只需要一个交换机开销.我需要这个,因为我需要同时进行许多(128)系统调用.如果我能做到这一点而不在内核和用户之间切换256次以上,我认为它可以使我的(速度敏感)库明显更快.

c linux kernel linux-kernel

0
推荐指数
1
解决办法
491
查看次数

Linux内核,Linux设备驱动程序或模块编写程序员需要进行算法分析吗?

我不善于分析算法并试图获得一些知识.由于我对内核感兴趣,linux设备驱动程序或模块编写器编程是这些编程真正需要的分析,如果是,那么一些概念就足够了或者我必须是我的代码的良好分析器或者我可以跳过这个并继续编程知识像C,C++,Linux内核等

谢谢

linux algorithm kernel linux-device-driver

0
推荐指数
1
解决办法
454
查看次数

当我打印在用户空间中初始化的char*时会发生什么?

我实施了一个新的系统调用作为介绍练习.它只需要一个缓冲区和printk缓冲区.我后来才知道正确的做法是使用copy_from_user.

这只是一个验证地址的预防措施,还是我的系统调用导致一些我看不到的错误(页面错误?)?

如果只是一种预防措施,它有什么保护作用?

谢谢!

kernel system-calls linux-kernel printk

0
推荐指数
1
解决办法
434
查看次数

为什么BIOS不直接加载Linux内核 - 为什么MBR和所有麻烦?

我最近了解了Linux的启动过程.我不禁想知道为什么我们经历了在BIOS之后接受MBR的麻烦,以便那里的指令可以反过来将内核加载到RAM中.

为什么中间人 - 为什么BIOS不直接加载内核?

linux operating-system kernel mbr bios

0
推荐指数
1
解决办法
2201
查看次数