1.进程间通信的方法
命名管道、socket、信号量、fifo、共享内存。
2.进程:一个正在运行的程序,是系统分配资源的最小单位
线程:是一种轻量级的进程,它没有系统资源,是系统调度的最小单位,一个进程是由一个或多个线程组成的,在一个进程的内部,多个线程的资源是共享的。
进程和线程的区别
资源分配不同:进程拥有独立的内存和系统资源,而在一个进程的内部,线程之间的资源是共享的,系统不会为线程分配系统资源。
工作效率不同:进程切换时需要保留占用的系统资源,而线程的切换不需要保留系统资源,提高了数据处理的并发能力。
执行方式不同:线程有程序运行的入口地址,但是线程不能独立运行,由于线程不占用系统资源,所以线程必须存在于进程中,进程可以被操作系统直接调度,不同进程之间的线程资源是不能共享的。
3.gdb调试
在编译的时候加入调试信息
gcc -g test.c -o test
然后使用gdb调试
gdb test
list:列出代码
run:运行程序
n :单条语句执行
continue(c):继续执行
break 5:在第五行加入一个断点
break function1:在函数function1处添加一个断点
info b:查看断点信息
p i:打印i的值
bt:打印堆栈信息
4.查看汇编代码
首先加入调试信息
gcc -g test.x -o test
然后使用objdump 查看汇编代码
objdump -S test
5.secureCRT不能输入,检查是否去掉了连接配置的RTS/CTS选项
6.pc和虚拟机设置共享目录后,在/mnt/hgfs/下查看共享文件。
7.pc上修复u盘:chkdsk H:/f
H为u盘盘符,当系统不能识别时,可到手机设置里格式化下
8.linux里大文件的分割
比如把10G的file.tar.gz分割为10个1G的小文件
split -b 1G file.tar.gz new-file.tar.gz.
-b 指定分割大小,K、M、G为单位
file.tar.gz 要分割的文件
new-file.tar.gz. 分割后的文件(注意最后面有个点“.”),如不指定该项,默认以aa,ab,ac命名分割后的文件。
分割文件的解压:
首先使用cat命令把分割文件合成一个大文件:cat new-file.tar.gz.* > big-file.tar.gz
然后使用tar 命令解压
如果是压缩和分割一起进行,可以通过管道“|”
tar -czvf - file | split -b 1G - new-file.tar.gz.
注意中间有两个“-”
file是要压缩的为文件。
9.后缀为.deb安装包的安装
使用dpkg 命令
dpkg -i package.deb
10.给用户添加sudo权限
vim /etc/sudoers
wss ALL=(ALL:ALL) ALL
wss ALL=(ALL) NOPASSWD: ALL
11.ubuntu中方向键及backspace键不能正常使用问题
打开vimrc文件
vim /etc/vim/vimrc.tiny
修改set compatible为set nocompatible
添加backspace
set backspace=2
12.linux里查看某个函数需要用到哪个头文件
man function_name
13.make 2>&1 | tee log.txt含义
2是标准出错,1是标准输出,2>&1就是把标准出错输出到标准输出,tee的作用就是同时输出到控制台和log.txt文件
14.原子操作
所谓的原子操作即是保证指令以原子的方式执行,它在执行过程中不被打断;可以理解为CPU执行该操作时,无法被打断。
15.二次开发
软件的二次开发就是在现有软件产品的基础上,针对客户的个性化需求进行的开发,不同于完全的定制开发,二次开发不是从头开发,是在已有软件的基础上进行。
16.plc
可编程逻辑控制器,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
梯形图(LAD, LadderLogic Programming Language)是PLC使用得最多的图形编程语言,被称为PLC的第一编程语言
17.内核态和用户态
当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。
18.上位机和下位机
上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。
19.can总线
CAN总线是Controller Area Network的缩写,是ISO国际标准化的串行通信协议。
20.ncuc总线
NC Union of China Field Bus ,为加快中国高档数控系统的技术研发进度,2008年2月,成立了由华中数控、大连光洋、沈阳高精、广州数控、浙江中控组成的数控系统现场总线技术联盟(NC Union of China Field Bus )
21.etherCAT总线
EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EtherCAT名称中的CAT为Control Automation Technology(控制自动化技术)首字母的缩写
22.伺服
“伺服”—词源于希腊语“奴隶”的意思。人们想把“伺服机构”当个得心应手的驯服工具,服从控制信号的要求而动作。在讯号来到之前,转子静止不动;讯号来到之后,转子立即转动;当讯号消失,转子能即时自行停转。由于它的“伺服”性能,因此而得名——伺服系统。
23.HMI
HMI是Human Machine Interface 的缩写,“人机接口”,也叫人机界面。人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介, 它实现信息的内部形式与人类可以接受形式之间的转换。凡参与人机信息交流的领域都存在着人机界面。
24.dos系统
DOS为16位操作系统,windows是dos的后续操作系统版本,DOS只支持命令操作,windows 只不过是将DOS命令编程为图型界面,只需点击就可以完成DOS命令。
25 .vim 里的强制保存