![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 75
水枂
这个作者很懒,什么都没留下…
展开
-
core文件如何分析
(一)什么是coredump通常应用程序运行时遇到,在满足一定条件下产生一个core文件,例如程序收到SIGABRT、SIGEMT等信号时(注:在signal.h里说明了哪些新号会产生coredump)都会出现coredump,我们平时见到最多的应该就是段错误。core文件包含了程序运行时内存、寄存器状态、堆栈指针、内存管理信息以及函数调用堆栈信息。我们通过分析core文件可以找到应用程序崩溃的地方(二)coredump产生的条件(1)coredump产生主要原因:1、内存访问越界2、多线程程原创 2021-09-26 14:02:38 · 10350 阅读 · 0 评论 -
libiconv库简单裁剪支持CP437编码
https://ftp.gnu.org/pub/gnu/libiconv/https://blog.csdn.net/mayue_web/article/details/100108034原创 2021-02-02 22:43:12 · 378 阅读 · 0 评论 -
调试跟踪利器---strace
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2020-11-25 22:47:34 · 686 阅读 · 0 评论 -
gbd的简单使用(一)
这篇文章将gdb的简单使用,通过此篇文章你能学习到使用gdb进行调试程序在Linux中编写程序时,如何进行程序的debug工作呢?今天来介绍下gdb这个工具,可以在Linux下直接man gdb查看帮助信息(一)gdb命令介绍常用命令:命令命令缩写命令说明runr开始运行程序,在第一个断点处停住startst启动调试,在main函数中第一条语句停住nextn执行下一行,不会进入函数内部steps执行下一条语句,会进入函数display.原创 2020-11-25 20:56:56 · 2827 阅读 · 0 评论 -
计算机是如何启动的?从未上电到操作系统启动
计算机是如何启动的,网络上很多博文1都从 BIOS 程序的加载开始说起,有的也跳到 BIOS 程序加载 Bootloader 阶段。个人认为把这个过程称为操作系统是如何被加载并启动应该更加贴切一点。同时,也有计算机硬件大神的文章[1][5]详细分析计算机加电的过程。在阅读前人的优秀文章之后,归纳总结写下了这篇文章以梳理从计算机上电之前到操作系统开始工作的整个过程。开机键按下之前:黑暗中的一点星光“滴答…滴答…”微弱的声音有规律地响起。“是谁?”从睡梦中醒来,身边漆黑一片,我惊呼出声。“哇,终于有朋友转载 2020-11-06 22:27:11 · 490 阅读 · 0 评论 -
windows上搭建NFS服务器
在进行嵌入式开发的时候,我们常用的做法是搭建NFS服务器,然后使把文件系统、调试程序放在NFS服务器上,这样可以方便调试,以前都是在linux里面开启NFS服务器,今天来说下window里的nfs服务器–haneWin一、软件安装和使用流程安装包可以自行某度解决,我这里直接使用安装好的注意使用管理员权限运行程序1.打开软件后,其他保持默认,直接按下面的操作2.上面的操作后,弹出一个编辑框我们修改成自己的,比如我在D盘创建了一个nfs文件夹我想把这个文件夹作为根目录然后点击保存,重启服务原创 2020-11-01 23:15:05 · 1722 阅读 · 1 评论 -
linux终端常用快捷键
CTRL+ALT+T 打开终端CTRL+D 关闭终端CTRL +SHIFT +"+" 放大终端字体CTRL+ “-” 缩小终端字体CTRL+ r 查找历史命令CTRL+u 删除光标前面所有内容CTRL+w 删除光标左边的单词CTRL +k 删除光标后面的所有内容CTRL+L 清除当前屏幕内容CTRL+a 光标移到开始位置CTRL+e 光标移到末尾左右方向键移动光标位置CTRL+←/→ 光标向前/后移动一个单词CTRL+s 暂停屏幕输出CTRL+Q 继续屏幕输出CTRL+原创 2020-11-01 21:22:25 · 293 阅读 · 0 评论 -
gcc: weak_alias如何使用
本文主要说明weak和alias是什么和如何使用它__attribute__是gcc专有的,用来说明函数的属性,weak和alias分别是两个属性。强符号和弱符号:强符号:已经初始化的全局变量和未被weak修饰的函数弱符号:未初始化的全局变量和被weak修饰的函数符号链接原理:链接器发现同时存在弱符号和强符号,优先选择强符号,如果发现不存在强符号,只存在弱符号,则选择弱符号上面这个有什么用呢?比如我们想使用某个函数必须用到的函数,但是不知道该函数在其他地方有没有被定义,那么我们可以把该函数声.原创 2020-11-01 14:56:03 · 2337 阅读 · 0 评论 -
嵌入式开发板模拟器:QEMU
前两天看微信公众号时发现了一个嵌入式模拟器,感觉很不错,自己动手安装了一个,过程记录如下模拟器大家应该都听说过,有的小伙伴打游戏也会安装模拟器,今天我们介绍的主角QMEU就是一个可以用在嵌入式的模拟器,如果你想学习嵌入式,但身边没有开发板,这时候你可以尝试使用它来模拟Linux内核的启动,当然它还可以模拟ARM、MIPS等各种CPU架构,本文主要介绍模拟ARM的启动流程(一)环境介绍 虚拟机:VMware Ubuntu 16.04LTS(一)安装QEMU...原创 2020-10-31 07:52:51 · 6163 阅读 · 1 评论 -
一口气搞懂「文件系统」,就靠这 25 张图了
目前言正文文件系统的基本组成虚拟文件系统文件的使用文件的存储空闲空间管理文件系统的结构目录的存储软链接和硬链接文件 I/O以下文章来源于小林coding,作者小林coding前言不多 BB,直接上「硬菜」。正文文件系统的基本组成文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。文件系统的基本数据单位是文件,它的目的是对.转载 2020-09-26 10:22:16 · 223 阅读 · 0 评论 -
gcc -strip编译选项的作用
从字面上来看strip的意思是脱衣服、拆卸,那么gcc --strip的作用大概能猜错来了。没错就是有选择地除去行号信息、重定位信息、调试段、typchk 段、注释段、文件头以及所有或部分符号表。一旦使用该命令,则很难调试文件的符号,因此,通常应该只在已经调试和测试过的生成模块上使用 strip 命令,使用 strip 命令减少对象文件所需的存储量开销。...原创 2020-09-20 10:23:30 · 5381 阅读 · 0 评论 -
mount --bind的用处
(一)mount --bind介绍mount --bind的作用是将两个目录连接起来,例如:mount ---bind /dir1 /dir2 是将dir1目录挂载到dir2目录上,下面来实际演示一下:上面的操作中首先创建了dir1 dir2两个目录,看到两个目录的i节点不一样,但是当我们执行完mount --bind命令后,dir1目录被挂载到dir2上面了,所有对dir2的访问都是对dir1的访问。看到这里有人会说软连接也能做到啊,但是软链接只是类似快捷方式,有些操作是软连接无法完成..原创 2020-09-19 22:45:04 · 3089 阅读 · 0 评论 -
从Linus Torvalds一封发飙的电邮开始谈设备树究竟是棵什么树?
以下文章来源于微信公众号嵌入式客栈,作者逸珺[导读] 新版的U-Boot以及内核都引入了设备树,那么这究竟是棵什么样的树呢?长啥样?有啥用?为啥弄个这样的树?本文基于对设备树标准的理解,来学习整理一下相关的要点,供大家参考。Linux为啥要设备树?在Linux3.x之前的内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,而且更严重的问题是,由于ARM商业生态模式,基于ARM IP授权模式,产生越来越多AR.转载 2020-09-09 19:56:45 · 213 阅读 · 0 评论 -
内核移植出现:Kernel panic - not syncing: No init found.
今天在升级SDK的时候,升级到kernel时遇到如题所述的问题,花了天时间调通,在这里记录一下。报错提示:(当时没有记录,错误的提示大概如下)Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.解决方法:按照错误提示找到init.txt文件,我这里只截取一部分上面的原因分析和在网上找到的差不.原创 2020-07-03 20:53:48 · 2192 阅读 · 0 评论 -
关于Ubuntu拒绝root用户ssh远程登录
今天使用SecureCRT远程登陆Ubuntu时一直提示密码或用户名错误,实际输入是正确的,我按照网上教程改还是不行,后来才想起来我是root登录的,Ubuntu默认的ssh远程root登录是关闭的,在这里记录一下1.编辑配置文件#sudo vim /etc/ssh/sshd_config找到并用#注释掉这行:PermitRootLogin prohibit-password新建一行 添加:PermitRootLogin yes这一行很明显可以看到默认是禁止root用密码登录的2.重启服务.原创 2020-06-20 10:08:46 · 324 阅读 · 0 评论 -
适用于Linux的Windows子系统WSL
以前使用的都是在虚拟机里安装linux,最近才发现在win10提供了WSL(Windows Subsystem for Linux) ,简单来说就是可以在win10里面直接使用Linux。(一)首先打开Microsoft Store , 搜索 Linux(二)选择自己需要的下载,这里选择Ubuntu18.04下载下载完成后,在开始菜单可以打开了(三)打开后提示不能用(四)需要到 控制面板\所有控制面板项\程序和功能 中选择 启用或者关闭Windows功能重启之后再次打开 Ubuntu.原创 2020-05-31 12:10:12 · 981 阅读 · 0 评论 -
Linux内核空间和用户空间
在Linux系统中存在进程的概念:进程的分类:用户进程:运行在用户空间的进程被称为用户进程内核进程:运行在内核空间的进程被称为内核进程进程的空间:系统会为每一个进程分0-4G的虚拟寻址空间,在4G的空间中0-3G:属于用户空间,用来运行用户的相关进程3-4G:属于内核空间,用来运行内核的相关进程用户空间:运行用户进程的空间内核空间:运行内核进程的空间用户模式:用户进程运行在用户...原创 2020-03-25 22:46:42 · 154 阅读 · 0 评论 -
linux的mount和umount指令使用
mount即挂在操作,磁盘或分区创建好文件系统后需要挂载到一个目录(一般mount在/mnt下)才能使用,和winsdows不同的是在linux下需要手动挂载。 用法: mount [-t文件系统] [选项] 设备目录 注意:[ ]为可选项,不写也没关系下面说一下每个参数的意思:-t 为指定文件系统类型:ext4、ext3 linux文件系统nfs网络文件系...原创 2020-03-16 22:33:17 · 894 阅读 · 0 评论 -
常用存储器介绍
注意:"易失/非易失"是指存储器断电后,它存储的数据内容是否会丢失的特性。(一)RAM和ROM1.1 RAMRAM即随机存储器,它是指存储器中的数据被读入或者写入与信息所在位置无关,时间都是相同的1.1.1 DRAMDRAM即动态随机存储器,它以电容的电荷表示数据,由于电容的充放电效应,所以存储数据需要定时刷新才能保证数据的正确性。它的优点是集成密度远高于SRAM,功耗低,价格也低;缺...原创 2020-03-11 22:37:59 · 809 阅读 · 0 评论 -
Linux下使用消息队实现 ATM 自动取款机功能
文章分五部分:需求分析、项目所需知识点、思路讲解、代码实现、功能演示本文内容较长,建议是按照我自己的思路给大家讲解的,如果有其他问题,欢迎评论区讨论文章中的代码是在linux下编译实现的,注意自己的环境。(一)需求分析我们的ATM终端要求实现下面的功能:(1)开户(2)存款(3)取款(4)查询(5)转账(6)退出(7)销户(二)项目相关知识点文件操作进程通信-...原创 2020-02-21 14:01:14 · 986 阅读 · 0 评论 -
C语言实现音乐播放器(Linux madplay)
(一)需求分析1.扫描指定路径下的音乐,并显示出来2.实现音乐的播放、暂停、上一首和下一首的功能3.程序退出释放内存资源(二)思路1.扫描出指定路径下的音乐文件(便利指定文件夹,找出音频文件放在数组里面)2.创建链表存放音乐的信息(音乐名、歌曲路径、歌曲总数等信息)3.创建新的进程,用来播放音乐4.调用kill函数实现音乐的切换和暂停播放功能注意: 如果出现设备繁忙,可以使用ps...原创 2020-02-09 10:02:38 · 9871 阅读 · 11 评论