常用知识点(一)

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 里的强制保存

“:w !sudo tee %”这条命令的含义是把当前编辑的文件的内容当做标准输入输入到命令sudo tee 文件名里去
也就是sudo保存为当前文件名;
 
查阅vim的文档(输入:help :w),会提到命令:w!{cmd},让vim执行一个外部命令{cmd},然后把当前缓冲区的内容从stdin传入。
tee是一个把stdin保存到文件的小工具。
而%,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。
原文地址:https://www.cnblogs.com/thinkinglife/p/4892983.html