LINUX系统编程
文章平均质量分 54
主要学习Linux系统应用的编程
lhh_qrsly
嵌入式领域软件和硬件知识分享
展开
-
linux 启动脚本整理
linux shell 启动脚本整理原创 2022-06-02 14:05:21 · 1646 阅读 · 1 评论 -
imx6null ip配置脚本
1、脚本#!/bin/bashIPconf_path=/etc/network/interfacessed -i '/iface eth0 inet dhcp/d' $IPconf_pathsed -i '/iface eth0 inet static/d' $IPconf_pathsed -i '/address 192.168.1.111/d' $IPconf_pathsed -i '/netmask 255.255.255.0/d' $IPconf_pathsed -i '/gate原创 2022-05-21 15:44:13 · 308 阅读 · 0 评论 -
VMWARE+18.04 配置 桥接 IP
1、windowsipconfig /all2、VMware 配置进入VMware虚拟网络编辑器,设置如下,我用的无线网卡桥接,用自动也可以。在虚拟机设置中将网络适配器改为桥接模式,复制物理网络连接状态可选可不选。进入Ubuntu18.04除了回环网卡外的网卡是ens33!记住哦!接着sudo vim /etc/network/interfaces 设置网卡的静态ip,再然后sudo vim /etc/systemd/resolved.conf,设置DNS服务器,我设置的是常用原创 2022-05-16 20:46:08 · 518 阅读 · 0 评论 -
linux内核中实现的引用计数机制——kref
引用计数优点:具有实时性,一旦变量没有被引用,就会把变量给释放掉kref机制:是linux内核中使用的引用计数机制,下面介绍一下,在内核中该如何使用引用计数这个技术,首先,在设计自己的数据结构时,要包含struct kref结构的字段。数据结构和初始化typedef struct {int counter;} atomic_t;typedef struct refcount_struct {atomic_t refs;} refcount_tstruct kref {refcou转载 2021-11-10 10:27:53 · 1067 阅读 · 0 评论 -
ubuntu 设置IP和安装ssh
1,静态IP:auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 219.224.167.193gateway 219.224.167.129netmask 255.255.255.0broadcast 219.224.167.255=============================2,动态IP:auto loiface lo inet loopbackauto eth0iface eth原创 2021-03-02 19:22:51 · 228 阅读 · 0 评论 -
ubuntu创建用户,分配密码,设置超级权限
添加新用户sudo useradd -m -s /bin/sh jacky注意普通用户用上述命令,如果要用tab等按键sudo useradd -m -s /bin/bash jacky或者sudo usermod -s /bin/bash jacky此条命令会在/home 目录下新建用户名文件夹sudo passwd jacky 设置密码添加root权限sudo vim /etc/sudoers添加 jacky ALL=(ALL:ALL) ALL原文链接:https:..转载 2021-03-02 16:05:12 · 537 阅读 · 0 评论 -
ubuntu16.04 查看CPU是几核
几个cpumore /proc/cpuinfo |grep “physical id”|uniq|wc -l每个cpu是几核(假设cpu配置相同)more /proc/cpuinfo |grep “physical id”|grep “0”|wc -lcat /proc/cpuinfo | grep processor查看物理CPU的个数#cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l查看逻辑CPU的个数#cat /pro转载 2021-01-31 13:53:04 · 1130 阅读 · 0 评论 -
MAKE编译命令
Makefile在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:make根据Makefile编译源代码,连接,生成目标文件,可执行文件。make clean清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。make install将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。make uninstall将编译成功的可执行文件从系统目录中卸载,一般为/usr/local/bin目录。翻译 2021-01-29 15:20:36 · 979 阅读 · 0 评论 -
git 打补丁遇见的错误
1、git apply的空白问题$ git apply foobar.patchfoobar.patch:271: trailing whitespace.foobar.patch:465: space before tab in indent..paging_full_numbers a.paginate_active {warning: squelched 1705 whitespace errorswarning: 1710 lines add whitespace errors.看看g原创 2021-01-19 17:17:49 · 6775 阅读 · 0 评论 -
LINUX - ubuntu16.04配置网卡
第一步:查看网卡信息输入ifconfig命令查看网卡信息,下图红圈处就是网卡名称。第二步:配置网卡文件注意:不同的linux系统,网卡配置文件是不同的,这里ubuntu的网卡配置文件是/etc/network/interfaces。输入下面命令进行编辑网卡文件sudo vi /etc/network/interfaces默认的文件内容如下:auto loiface lo inet loopback现在修改配置文件。修改方式有两种方式一:静态ip修改内容如下:下面的enp0s3需要翻译 2020-11-03 18:35:18 · 856 阅读 · 0 评论 -
LINUX 宏__define_initcall(level,fn)的作用 和 do_initcalls()
前言宏定义__define_initcall(level,fn)对于内核的初始化很重要,它指示编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序放在一个section中。在内核初始化阶段,do_initcalls() 将按顺序从该section中以函数指针的形式取出这些函数的起始地址,来依次完成相应的初始化。由于内核某些部分的初始化需要依赖于其他某些部分的初始化的完成,因此这个顺序排列常常非常重要。下面将从__define_initcall(level,fn) 宏定义的代码分析入翻译 2020-11-02 20:01:31 · 356 阅读 · 0 评论 -
linux:ls -l显示的内容中total到底是什么?
当我们在使用ls -l的命令时,我们会看到如下类似的信息很多人可能对于第一行的total 12的数值并不是很在意,但是你是否想过,它究竟是什么意思?man中的说明,我们可以看出total的意思为 “所列出内容的磁盘占用空间总和值。单位为kbytes"这句话是什么意思?我们知道ls -l列出的第5列数值是该文件或目录的大小。在这里目录的大小并非是目录所包含的文件的总大小。而仅仅是目录自身的大小。如果你无法理解这一概念,请思考一下”linux中一切皆文件“这句话的含义。那么,也就是说图中的tota翻译 2020-10-21 12:55:35 · 2083 阅读 · 1 评论 -
Linux Makefile和shell的主要区别
一、shell1.1 什么是shell● 用户与Linux的接口● 命令解释器● 支持多用户● 支持复杂的编程语言● Shell有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省Shell为bash(Bourne Again Shell)。Shell是用户和操作系统之间最主要接口。通过Shell,可以同时在后台运行多个应用程序,并且在把需要与用户交互的程序放在前台运行。通过在多条命令的序列中使用变量和流程控制,Shell可以作为一名复杂的编程语原创 2020-10-16 15:02:15 · 1025 阅读 · 0 评论 -
Linux设备树详解
Device Tree简介Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a fucking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设.翻译 2020-10-16 01:47:22 · 514 阅读 · 0 评论 -
Linux内核和应用程序之间的关系
1、先说Linux内核,内核就是系统本身。 驱动呢,可以编译进内核,也可以不编译进去。不编译进去的时候,可以在内核跑起来之后,用insmod 加载进内核,这个过程,就好比你在win7 下,从网上下载一个显卡驱动并装上。应用呢,就是内核起来后,可以在系统里跑的程序,比如浏览器什么的。那么驱动和应用有啥不同呢,应用是调用内核提供给用户空间的接口,而驱动是在内核空间运行的,用的是内核内部的接口。2、首先脑子中要有个概念 U-BOOT(BOOTLOADER)LINUX内核(一般包含驱动,也就是和内核一起编译好后下原创 2020-10-16 00:04:25 · 1355 阅读 · 0 评论 -
万能makefile模板以及相关命令介绍
1、makefile $@, $^, $<, $?$@ 表示目标文件$^ 表示所有的依赖文件$< 表示第一个依赖文件$? 表示比目标还要新的依赖文件列表如一个目录下有如下文件:$ lshello.c hi.c main.c Makefile按照 Makefile 规则规规矩矩的写:main: main.o hello.o hi.o gcc -o main main.o hello.o hi.omain.o: main.c cc翻译 2020-10-15 00:01:00 · 328 阅读 · 0 评论 -
makefile之override
override指示符通常在执行 make 时,如果通过命令行定义了一个变量,那么它将替代在 Makefile中出现的同名变量的定义。就是说,对于一个在 Makefile 中使用常规方式(使用“=”、“:=”或者“define”)定义的变量,我们可以在执行 make 时通过命令行方式重新指定这个变量的值,命令行指定的值将替代出现在 Makefile 中此变量的值。如果不希望命令行指定的变量值替代在 Makefile 中的变量定义,那么我们需要在 Makefile 中使用指示符“override”来对这转载 2020-10-14 23:45:14 · 2262 阅读 · 0 评论 -
linux-makefile 函数
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$(<function>; <arguments>;)或是${<function>; <arguments>;}这 里,;就是函数名,make支持的函数不多。;是函数的参数,参数转载 2020-10-14 23:41:16 · 246 阅读 · 0 评论 -
Linux里Makefile是什么?如何工作的?
makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接-----但是不是所有的文件都需要重新编译,makefile能够纪录文件的信息,决定在链接的时候需要重新编译哪些文件!当你需要在一些源文件改变后运行或更新一个任务时,通常会用到 make 工具。make 工具需要读取一个 Makefile(或 makefile)文件,在该文件中定义了一系列需要执行的任务。你可以使用 make 来将源代码编译为可执行程序。大部分开源项目会使用 make 来实现最终的二进制文原创 2020-10-14 18:31:28 · 2720 阅读 · 1 评论 -
tftp使用方法
1.从设备上下载1.jpg到PC端: >tftp -p -l 1.jpg 192.168.213.1282.从PC端上传输ZKDB.db文件到设备:>tftp -g 192.168.213.128 -r ZKDB.db 上传3.参数说明:-l 是local的缩写,后跟存在于Client的源文件名,或下载Client后重命名的文件名。-r 是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文件名,或上传Server后重命名后的文件名。-g 是原创 2020-10-14 00:58:31 · 551 阅读 · 0 评论 -
apt-get 提示 无法解析域名“cn.archive.ubuntu.com” 的解决
今天用公司电脑(ubuntu)想使用apt-get安装一些软件,系统提示无法解析域名“cn.archive.ubuntu.com”。原因是dns没有配置,解决办法 加入dns服务器地址,比如:vi /etc/resolv.confnameserver 202.96.134.133nameserver 8.8.8.8但是使用该方法会发现重启电脑之后 resolv.conf文件内容会还原。应该选择修改/etc/resolvconf/resolv.conf.d/base文件,添加同样的内容可解决。.转载 2020-10-14 00:59:49 · 2585 阅读 · 0 评论 -
Ubuntu Linux操作系统tftp服务器和客户端安装(简单操作)
操作系统:ubuntu(64位) 12.04,系统必须连接互联网!以下绿色文字为终端输入命令,红色为错误信息,蓝色为提示信息,紫色为一般信息。终端输入:tftp 192.168.1.102发现如下错误:程序 ‘tftp’ 已包含在下列软件包中:tftp-hpatftp请尝试:sudo apt-get install <选定的软件包>说明tftp没有安装!###############################################安装tftp客户端:输入转载 2020-10-14 01:15:44 · 1805 阅读 · 0 评论 -
一、LINUX这一块该怎么弄?
1、综述Linux系统和Windows系统一样都是已经相当成熟的系统,相比而言Linux在工业和嵌入式产品应用上更多一些,再加上Linux系统开源,开发者们可以定制自己的开发方案,所以如果你是做产品的,Linux系统是不错的选择。2、我们怎么学习Linux我大概总结了一下,可以从以下3步走:(1)Linux系统内核学习,初步掌握Linux环境的搭建和简单命令的使用(2)Linux应用编程,可以写一个小的测试程序,实现自己想要的功能。(3)Linux驱动的了解,这一部分需要更多的知识,才能搞定。原创 2020-09-20 14:52:37 · 80 阅读 · 0 评论