
linux系统编程
zhangzheng_1986
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
为什么linux内核函数出现错误,返回值是一个负数
该疑问出现与我看《linux内核设计与实现》这本书的12.3.2这节中下面一段代码:page = __get_free_pages(GFP_KERNEL,3);if (!page){ /*没有足够的内存:你必须处理这种错误!*/ return -ENOMEM; }1.如何理解函数返回指针内核中的函数通常以返回指针的形式来传递调用函数后执...转载 2018-08-15 15:51:47 · 2426 阅读 · 0 评论 -
Linux内核同步方法
当多个进程、线程或中断、正常用户程序同时访问同一个资源,可能导致错误,因此内核需要提供并发控制机制,对公共资源的访问进行同步控制,确保共享资源的安全访问。 linux中包含了众多的互斥与同步机制,包括信号量、互斥体、自旋锁、原子操作、读写锁等。在讨论之前我们引入几个概念: 进程上下文:应用程序陷入内核运行时所处的内核环境。 中断上下文:中断服务程序执行时所处的内核环境。 ...原创 2018-08-16 14:07:13 · 869 阅读 · 0 评论 -
linux内核中list用法
转载 2018-08-16 14:42:08 · 4359 阅读 · 0 评论 -
Linux内核进程睡眠和唤醒
对于 TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE 补充说明一下: 值 含义 状态 TASK_RUNNING 可执行状态(执行状态、执行等待状态)。 执行态或就绪态 TASK_INTERRUPTIBLE 可打断睡眠,可以接受信号并被唤醒,也可以在等待条件全部达成后被显式唤醒(比如wake_up()函数)。 ...原创 2018-08-22 17:22:36 · 4107 阅读 · 0 评论 -
Linux 库的使用
1 基本概念1.1 什么是库 一种可执行代码的二进制形式,可以被操作系统载入内存执行。 1.2 库的种类 静态库:静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。 动态库:可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。 1.3 库的命名 静态库的名字一般为libxxxx.a,其中 xxxx 是该lib的名称。 动态库的名字一般为l...原创 2018-08-28 00:16:37 · 306 阅读 · 0 评论