-
- 24小时学通Linux内核之有关Linux文件系统实现的问题
- Linux的使用和用户空间程序的编程与文件系统密切相关。对于文件系统的概念,大家可能已经比较熟悉了,所以我不会过多地讲解。毕竟,只要能了解这些概念就可以了,对于想深入了解的人,可以随时通过百度等搜索引擎获取更多信息。现在我将重点介绍Linux的虚拟文件系统。虚拟文件系统是Linux的一个重要特性之一,它支持多种不同的文件系统。文件系统的结构如下图所示:[图片见原文]上图中VFS(虚拟文件系统)依赖数据结构来保存其对一个文件系统的一般表示,其中数据结构罗列如下:超级块结构:存放已经安装的文件系统的
- LINUX . 系统教程 919 2024-02-05 16:00:03
-
- 手把手教你构建linux rootfs
- busybox概述众所周知,在Linux环境下,一切皆文件,文件可以表示一切。而文件系统则是这些普通组件的集合。在嵌入式领域中,常常使用基于busybox构建的rootfs来构建文件系统。busybox诞生至今已有近20年的历史,如今已成为嵌入式行业中主流的rootfs构建工具。busybox的代码是完全开源的。你可以进入官方网站,点击”GetBusyBox”下面的”DownloadSource”进入源码下载界面。“官方网站链接:https://busybox.net/”2.busybox的配置
- LINUX . 系统教程 666 2024-02-05 15:51:16
-
- Linux之PWM驱动
- 1.概述本文将深入介绍Linux的PWM(Pulse-WidthModulation)驱动框架,包括其实现原理、驱动添加方法以及调试方法,以帮助开发者更好地了解和使用这一功能。本文所示示例Linux内核版本为6.2.8。2.原理PWM技术作为一种常用的调制技术,可以通过调整周期性波形的高电平时间宽度来改变有效信号的占空比,从而实现对设备的供电控制。常见的PWM应用领域包括屏幕背光亮度调节、电机转速控制和风扇转速控制等。Linux内核支持PWM驱动框架,通过抽象PWM控制器和PWM信号的结构体数据
- LINUX . 系统教程 1623 2024-02-05 15:40:03
-
- IAR进军Linux,支持在Linux搭建编译环境
- 在MCU开发中,大多数人使用集成开发环境(如KeilMDK、IAREWARM)进行开发。然而,这些环境只支持Windows系统,不支持其他操作系统环境,这对于喜欢使用Linux的嵌入式软件工程师来说是一个痛点。因此,许多嵌入式软件工程师倾向于在Linux系统上自己搭建开发环境。KeilMDK使用的是ARM编译器,可以在其他环境中独立使用,但IAR编译器不支持其他环境。在Linux环境下,有很多成功搭建ARM编译器或GCC编译环境的案例,但是在Linux环境下使用IAR编译器的案例则较少。然而,近
- LINUX . 系统教程 1101 2024-02-05 14:50:11
-
- 嵌入式 ARM Linux 应用程序项目问题定位
- 一、现象根据业务线的反馈,他们发现每当运行我们的通讯软件appA时,单板的CPU使用率就会变得异常高,即使没有进行任何通讯操作,只是空跑时CPU利用率仍然很高。通常情况下,业务很少关注CPU性能,不过我已经好久没更新博客了,所以我觉得值得记录一下这个问题(虽然最后经过一两天的调试,只是改了一行代码就解决了,o(╯□╰)o)。在启动appA之前,我先通过top命令查看CPU的使用情况,如下所示,9%的利用率还算是正常的(因为还有其他的业务应用程序在运行)。Mem:49320Kused,202284
- LINUX . 系统教程 1181 2024-02-05 14:05:02
-
- 比 Vim 更现代直观的 Linux 文本编辑器
- 如果你厌倦了Vi和Vim的奇怪界面和繁琐的键绑定,为什么不试试Micro编辑器呢?命令行文本编辑器证明了Linux终端的实用性,让您可以在不离开终端的情况下进行文件编辑。这些编辑器使用的资源更少,速度也非常快,非常适合进行一些快速编辑。一些流行的命令行文本编辑器包括Vi、Vim和Nano。它们在大多数Linux发行版中都预装了。然而,对于初学者来说,学习Vi或Vim的曲线和键绑定可能有些困难。这时,Micro文本编辑器就成为了一个更简单的选择。Micro与其他编辑相比的表现如何Micro宣称自己
- LINUX . 系统教程 940 2024-02-05 14:00:13
-
- 为什么Linux内核里大量使用goto,而很多书籍却不提倡使用?
- 关于C语言中的goto语句,存在着许多争议,很多书籍建议要“谨慎使用,甚至避免使用”。但是,在Linux之父Linus的实践中,他在Linux中广泛使用了goto语句,这也启示了我们可以合理地使用这个特性。正因为存在争议,我们有必要学会使用goto语句。下面来看一些goto语句的基本语法和示例:一、goto的基本语法goto语句由两部分组成:关键字goto和标签名。标签的命名规则与变量的命名规则相同。示例:gotolabel;要让这条语句正常工作,函数还必须包含另一条标为label的语句,该语句
- LINUX . 系统教程 1720 2024-02-05 13:25:27
-
- Linux开发coredump文件分析实战分享
- 前言:在嵌入式Linux开发中,分析coredump文件是一种常用的方法,我们经常可以在网络上找到相关的使用教程。然而,很少有介绍如何分析多线程应用程序的coredump文件的文章。今天我来分享一些我在实际使用中遇到的案例,希望能给大家提供一些帮助。由于代码和篇幅的限制,我只会描述我认为比较有特色的问题,并以框架思维去解决许多遇到的coredump文件的情况。作者:良知犹存转载授权以及围观:欢迎关注微信公众号:羽林君或者添加作者个人微信:become_me情节介绍:在调试一个功能时,我产生了一些
- LINUX . 系统教程 2815 2024-02-05 13:10:18
-
- Linux 程序编译过程详解
- 计算机程序设计语言通常分为机器语言、汇编语言和高级语言三类。高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解释型。因此我们基本上将高级语言分为两大类,一种是编译型语言,例如C,C++,Java,另一种是解释型语言,例如Python、Ruby、MATLAB、JavaScript。本文将介绍如何将高层的C/C++语言编写的程序转换成为处理器能够执行的二进制代码的过程,包括四个步骤:预处理(Preprocessing)编译(Compilation)汇编(Assem
- LINUX . 系统教程 1094 2024-02-05 13:09:15
-
- 探讨 Linux CPU 的上下文切换
- 众所周知,Linux是一个支持多任务的操作系统,它能同时运行的任务数量远远超过CPU的数量。当然,这些任务实际上并不是真正同时运行的(对于单个CPU),而是因为系统会在短时间内将CPU轮流分配给这些任务,从而营造出多个任务同时运行的假象。CPU上下文(CPUContext)在每个任务运行之前,CPU需要知道从哪里加载和启动该任务。这意味着系统需要提前设置好CPU的寄存器和程序计数器。CPU寄存器是内置于CPU中的小型但非常快速的内存。而程序计数器用于存储CPU当前正在执行的指令位置或下一条要执行
- LINUX . 系统教程 626 2024-02-05 13:06:10
-
- 学STM32需要学会哪些才建议去学Linux?
- 今天分享一个知乎里一个嵌入式相关热门问题:学STM32需要学会哪些才建议去学Linux?一个很不错的回答:“作者:snowdream链接:https://www.zhihu.com/question/357775329/answer/2338874463”作为一枚嵌入式软件开发的老程序员,答主也是经历过STM32开发向Soc+Linux开发的技术栈转变过程。总的来说,具备stm32嵌入式开发技能对于掌握Soc+Linux的嵌入式开发有一定的促进作用,但是如果题主志在走向Linux应用开发道路,那
- LINUX . 系统教程 959 2024-02-05 13:03:42
-
- Linux 新系统易用性向 Windows 看齐
- 在嵌入式开发过程中,许多工程师会选择使用Linux系统。但是,实际上,在嵌入式开发中使用的工具,仍然有相当一部分只支持Windows系统。尽管如此,我们必须承认的是,使用Windows系统的用户比使用Linux系统的用户要多得多。特别是在嵌入式开发人员中,绝大部分都是在Windows环境下安装虚拟机以使用Linux系统。因此,为了适应更多的用户需求,现在Linux系统的易用性也开始向Windows系统看齐。具体做法是,增加可视化操作界面,提供更加友好的用户体验。例如,在Linux中增加类Wind
- LINUX . 系统教程 838 2024-02-05 13:03:11
-
- Linux 环境变量配置全攻略,初学者必会…
- 在自定义安装软件时,经常需要配置环境变量。下面是各种配置环境变量的方法。在下面的例子中,我们使用的环境如下:操作系统:Ubuntu14.0用户名:uusama需要配置MySQL环境变量的路径:/home/uusama/mysql/bin在Linux中查看环境变量以下是查看环境变量的方法:使用export命令可以显示当前系统定义的所有环境变量。使用echo$PATH命令可以输出当前的PATH环境变量的值。执行这两个命令的效果如下所示:uusama@ubuntu:~$exportdeclare-xH
- LINUX . 系统教程 811 2024-02-05 13:00:18
-
- 什么是Linux内核空间与用户空间?
- 内核空间和用户空间对于32位操作系统而言,它的寻址空间(也称为虚拟地址空间或线性地址空间)大小为4G(即2的32次方)。这意味着一个进程可以拥有最大4G的地址空间。操作系统的核心是内核(kernel),它是与普通应用程序分离的,有权限访问受保护的内存空间和底层硬件设备。为了保证内核的安全,现代操作系统通常限制用户进程直接操作内核。通常,这通过将虚拟地址空间划分为两个部分来实现,即内核空间和用户空间。就Linux操作系统而言,最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)被
- LINUX . 系统教程 1171 2024-02-05 12:57:09
-
- Linux命令行万能解压命令
- 这次我将和大家分享一个非常实用的万能解压命令。在Linux系统下,有多种压缩包格式可供选择,而在命令行下解压不同格式的压缩包时,需要使用不同的命令和参数。对于我们来说,记住这么多命令是相当困难的。不过,我们可以编写一个万能的解压命令,以替代这些繁琐的解压命令,这样我们只需要记住一条命令即可。以下是具体的步骤分享:1、在用户目录创建一个.autoex.sh脚本脚本的内容如:#copyfromhttps://ynome.wordpress.com/2013/04/14/linux-%E9%80%9A
- LINUX . 系统教程 1103 2024-02-05 12:54:23

PHP讨论组
组员:3305人话题:1500
PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是