linux内核

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰 Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些 Minix 黑客提供了协助,而如今全球无数程序员正在为该计划无偿提供帮助。

Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰 Linus Torvalds为尝试在英特尔x86架构上提供自由的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些 Minix 黑客提供了协助,而如今全球无数程序员正在为该计划无偿提供帮助。收起

查看更多
  • 【Linux内核设计思想】六、系统调用
    在Linux中,系统调用是除了异常和陷入外,用户空间访问内核的唯一手段,也是内核的唯一合法入口。它提供了用户空间上运行的进程和内核交互的接口,通过这些接口,应用程序可以访问硬件和操作系统的其它资源。系统调用作为用户空间和硬件设备之间的中间层,起到了一个使者的作用,主要作用包括:
  • 搞懂 printk:内核打印的工作流程、级别控制与常见坑
    本文介绍Linux内核printk调试:printk是内核态日志函数,输出到Log Buffer和Console,支持8级日志;推荐用pr_err/pr_info/pr_debug宏,结合dmesg查看并通过/proc/sys/kernel/printk调整级别。注意无浮点、%p默认哈希、用户指针风险及高频打印影响时序。
    287
    09/20 09:03
  • 高内聚低耦合最全详解:概念、分类、优缺点及Linux内核实战案例
    本文介绍了高内聚低耦合的概念及其重要性,并详细解释了内聚性和耦合性的含义和分类。文章强调了高内聚低耦合并非单纯追求内聚最高、耦合最低,而是要在二者之间找到平衡。文中提供了具体的实例,如Linux内核中的bus总线架构,展示了如何通过抽象和封装实现高内聚低耦合的设计原则。此外,文章还讨论了高内聚低耦合的实际应用挑战和解决方法。
    381
    09/07 08:18
  • perf 常用命令速查手册(建议收藏)
    Linux 内核自带的 perf 工具提供了强大的性能分析能力,包括函数级和指令级的热点采样,以及配合 tracepoint 采集系统调用、网络事件、文件系统操作等内核事件。perf 基于内核的性能计数器子系统,并且可以通过多种命令进行配置和使用,例如统计 CPU 计数器、采样程序执行过程中的性能事件、生成性能报告等。
    perf 常用命令速查手册(建议收藏)
  • 内核调试AI工作流:ftrace / perf / kdump 怎么让AI帮上忙
    AI 助力内核调试:利用 AI 提供的自动化分析工具和假设排序能力,显著缩短调试时间并提高问题解决效率。通过结合 ftrace、perf 和 kdump 等工具,AI 可以快速识别关键问题,并提供详细的假设和验证步骤,从而加速问题定位过程。
    内核调试AI工作流:ftrace / perf / kdump 怎么让AI帮上忙
  • 【Linux内核设计思想】五、进程调度
    进程调度程序是内核的重要组成部分,负责在可运行态进程之间分配处理器时间资源,最大化利用系统资源,实现多任务并发执行。Linux操作系统采用抢占式多任务调度策略,通过优先级、时间片和进程抢占机制有效管理进程执行。进程调度涉及策略制定、时间片管理、优先级调整和负载均衡等多个方面,确保系统高效运行。
  • 拿来就用,Linux内核里面有哪些实用代码模块?
    嵌入式工程师可以通过使用Linux内核中的开源代码模块来提高开发效率。本文介绍了四个实用的代码模块:CRC校验、字符串处理、位运算和kfifo环形缓冲区。这些模块涵盖了数据完整性检查、字符串操作、位操作和数据缓存等功能,适合各种嵌入式应用场景。移植过程中只需少量修改,即可适应不同芯片的需求。
    拿来就用,Linux内核里面有哪些实用代码模块?
  • RK3588串口RS485自动收发控制:内核驱动层改造实战
    【前言】 在工业通信场景中,RS485因其远距离传输、抗干扰能力强、支持多节点组网等特性,成为工控领域的首选通信方式。然而,与RS232的全双工通信不同,RS485采用半双工模式——同一时刻只能发送或接收。这就要求我们必须精确控制收发状态切换: 发送数据前:将控制脚置为高电平,使能发送器 数据发送完成后:将控制脚置为低电平,切换为接收模式 瑞芯微RK系列芯片(以眺望电子RK3588核心板为例)的U
  • 用生活中的例子给你解释Linux内核中的常用锁!小学生都能看懂!
    Linux 内核采用多种机制保障并发任务下的资源共享安全性,包括中断屏蔽、原子操作、互斥锁、信号量、自旋锁和 completion。中断屏蔽通过关闭CPU中断来确保临界区代码的原子执行;原子操作则利用CPU硬件指令保证操作的不可分割性;互斥锁确保同一时刻只有一个线程访问共享资源;信号量通过计数器控制资源访问权限;自旋锁允许处理器核心在短暂持有锁期间进行自旋等待;completion机制用于等待特定事件发生后通知等待者。这些机制在生活中也有类似的应用,如关闭手机WiFi防止来电干扰、扫码支付扣款确保交易完整性、电影院入场券限制座位数量等。
    用生活中的例子给你解释Linux内核中的常用锁!小学生都能看懂!
  • 手把手教你如何从Linux内核抄代码!
    文章介绍了如何借鉴Linux内核代码中的数组结构来管理不同压缩比的算法参数。通过分析JZ4740、JZ4760、JZ4775、JZ4780处理器UART控制器的驱动代码,展示了如何利用`compatible`属性区分不同版本,并通过`.data`字段获取对应的配置信息。作者还提供了自己的代码示例,演示了如何使用类似方法管理不同类型的压缩算法参数。
  • 为什么说搞嵌入式是个系统化的活
    DMA_BUF是一种Linux内核机制,允许CPU、GPU、NPU等硬件设备直接共享同一块物理内存,降低系统开销和提高处理速度。它通过文件描述符(fd)机制实现跨进程、跨子系统的内存共享,分为导出者和导入者两部分。导出者负责内存分配和操作回调,导入者通过API映射IO地址实现直接访问。DMA_BUF适用于AI推理、图像处理等高数据量应用场景,通过fd实现零拷贝共享,配合fence和CPU同步确保数据一致性,是构建高效异构计算系统的关键技术。
  • 【Linux内核设计思想】四、进程管理(二)
    进程创建涉及fork()和exec()系统调用,fork()用于创建子进程,exec()用于替换进程执行目标程序。fork()采用写时拷贝机制,子进程与父进程共享大部分资源,但各自拥有独立的内存空间。vfork()允许子进程在父进程地址空间运行,父进程在此期间被阻塞。进程终止时,do_exit()负责清理资源并通知父进程,父进程可通过wait()等待子进程结束。
    【Linux内核设计思想】四、进程管理(二)
  • Rust正式成为Linux永久核心语言
    Rust 成为 Linux 内核永久核心语言,标志着其在长期维护中的重要地位。Debian APT 和 Android 采用 Rust 开发,表明其在实际工程中的可行性。对于嵌入式工程师而言,了解 Rust 对于未来工作至关重要,尤其是涉及 Linux BSP、驱动和系统层的工作。学生和转型工程师应掌握 Rust 基础知识,以便在未来工作中更好地适应新技术。
    995
    01/05 13:30
  • Linux内核日志玩明白了吗?printk调试神器全解析
    前言: 做Linux驱动开发或内核调试的朋友,一定对printk不陌生,但你真的会用它吗?为什么同样是调试RK3588内核,别人能精准捕捉关键错误,你却被海量日志淹没?今天就带大家吃透printk的日志等级机制,从参数配置到实战用法一次讲透~ 一、printk与printf的差异 用户态的printf大家都熟,直接打印内容,简单粗暴。但内核场景更复杂,系统崩溃或是debug调试细节,不同信息的重要
  • 【Linux内核设计思想】四、进程管理(一)
    进程是处于执行期的程序及其资源的总称,包括代码段、文件、信号、内核数据等。Linux内核通过task_struct结构描述进程,该结构包含了进程的各种信息,如状态、地址空间、线程等。进程通过fork()系统调用复制现有进程创建新进程,新进程可通过exec函数族加载新程序。进程描述符保存在任务队列中,通过slab分配器高效管理。进程状态包括运行态、可中断态、不可中断态、僵死态和停止态。进程间存在父子关系,通过遍历子进程链表或递归查找祖先进程可以构建进程家族树。进程上下文涉及系统调用和异常处理,所有进程都是init进程的后代。
    【Linux内核设计思想】四、进程管理(一)
  • 浅谈Linux内核的实时性优化
    什么是实时操作系统?接触过嵌入式的小伙伴可能会知道,实时操作系统是指在嵌入式领域广泛应用的各类RTOS(Real Time Operating System)。其中最具代表性的有国外的μC/OS-III、FreeRTOS、Vxworks等,国内的代表有RT-Thread和LiteOS。 
    浅谈Linux内核的实时性优化
  • 玩转内核链表list_head,教你管理不同类型节点的实现,建议收藏
    在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head。虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作list_head 的通用接口很容易实现代码的重用,有点类似于C++的继承机制(希望有机会写篇文章研究一下C语言的面向对象机制)。
  • 需要多久才能看完linux内核源码?
    Linux内核分为CPU调度、内存管理、网络和存储四大子系统,针对硬件的驱动成百上千。代码的数量更是大的惊人。先说说最早的内核linux 0.11,这本书《Linux内核完全剖析》可以说很多驱动工程师都学习过,我花了大概1个半月,勉强看了一遍。
  • Linux内核源码下载及阅读指南,想学习嵌入式Linux的同学可以参考
    有很多同学想入门Linux内核,这是Linux最核心的部分,也是学习驱动和软件流程最好的资料。今天给大家说下如何下载Linux内核,并开始阅读学习。本文主要分为两部分:Linux内核源码下载方法;Linux内核源码阅读以及工具详解

正在努力加载...