11.26整理

来源:互联网 发布:126邮箱imap端口 编辑:程序博客网 时间:2024/06/01 08:17

1、嵌入式操作系统相关概念

2、Linux相关的结构和命令

3、Vim的使用


1、嵌入式操作系统相关概念?

1.同步和互斥
同步:A,B,C三个人通过一个门,A先走,B第二个走,C第三个走,依次进行,这个是同步
互斥:对于门,A在进出门的时候,B,C是不能同时进出的,门这个资源对BC互斥的

总结:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。


2.死锁
 A,B,C三个进程在运行的时候分别占有了资源x,y,z, A-x, B-y, Z-c, 但是在运行的时候A需要y.B 需要z,C需要x,这种情况下A,B,C都不能进行下去,这种情况为死锁;

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
 
3.前后台系统
基于芯片开发的,如单片机设备,基本都是前后台系统,利用中断来实现。


2、Linux相关结构和命令

1.  etc
放的是系统的配置,启动文件
2.bin.sbin
放的是用户命令和系统命令
 
3.  dev
放的是设备文件,如果是从应用程序控制硬件,都是通过/dev下的设备来控制
4. proc
放置的都是系统所显示的信息,包括设备信息在/proc/devices
 
5. sys
系统中硬件的设备信息,做硬件的设备驱动开发的时候,里面经常要来显示硬件的设备信息 ;
如/sys/bus/platform/devices 放的是设备文件,而在同目录下drivers放的是驱动文件,两者都有对应上硬件才能用;
 
6. home
用户的工作目录,这个文件夹下的文件删除没问题,不影响系统工作;
 
7. lib
放的是库文件,经常使用

8.常用linux命令

8.1  cd  改变工作目录
#cd  /   进入到根目录下
#cd   /home    进入到/home下
#cd   ..    返回上一级目录
 
# cd   /sys/bus/platform/devices   进入到/sys/bus/platform/devices 目录下
#cd  ../../../   返回到sys目录下
 注意:cd只能进入到目录中,不能进入文件和命令中;
 
8.2  pwd
显示当前路径
 
8.3  ls
查看目录下的内容 
#ls   /home    查看/home的内容的,有哪些内容 
#ls  -l /home    详细查看home的内容, 列表的形式 
# ls  -la   /home   详细查看/home下包括隐藏文件在内的所有文件,列表形式 
 
8.4   touch
新建一个文件,
#touch  hello.c    在当前目录下新建了hello.c文件;
 8.5 cp
拷贝
# cp  hello1.c   /      把当前目录下的hello.c   拷贝到根目录下;拷贝文件
 #cp  -r /mnt/blk/    /home      把blk 这个目录拷贝到/home目录下;拷贝目录,拷贝文件夹
 
8.6  mkdir
#mkdir   www   ;  创建www文件夹,创建目录
 
创建一个多级目录,当前目录下d1目录不一定存在;
#mkdir -p  d1/d2/d3         在当前目录下创建d1目录,d1目录中创建d2目录,d2目录中创建d3目录   
 
 
任务:
1. 创建一个文件夹,目录;
2. 创建一个文件;
3. 把这个文件拷贝到另外一个目录;
4. 把这个目录拷贝到另外一个目录;
 
 
8.7 mv
剪切,改名
#mv  hello.c  func.c   把hello.c 改名为func.c
 
#mv  func.c   /    把当前文件夹下的func.c 剪切到根目录/下
#mv   func.c   /mnt/every.c    把func.c 剪切到/mnt目录下,并改名为every.c
剪切多个文件:
#mv  hello.c  every.c    /home/151    把every.c  hello.c  剪切到/home/151目录下
剪切多个文件夹:
#mv    rootfs1  www   /home/151     把rootfs1  www  两个文件夹剪切到/home/151目录下
给文件夹改名:
#mv   www   www3    把文件夹www改名为www3
 
 
8.8  rm
删除
删除一个文件,
# rm  hello.c    删除hello.c 文件,带有交互的
删除一个空文件夹;
# rm  -r  zyx    删除一个目录zyx
 删除一个有内容的文件夹;
#rm -rf   rootfs1     把rootfs1这个文件夹下所有的内容全部删除,不要交互
 
删除多个文件;
#rm   -rf    every.c  hello.c    删除两个文件,不交互
删除多个文件夹;
#rm  -rf   a  b      删除两个文件夹
 
8.9 tar 
 压缩解压文件:
把当前目录下的c1文件夹压缩成c1.tar.gz的压缩文件 :
#tar  cvzf   c1.tar.gz   c1     
 
 解压缩:
#tar  zxvf    c1.tar.gz    在当前文件夹下解压缩 
 
 
8.10   修改权限chmod
# chmod    666 hello1.c    把hello1.c  的权限为所有者可读可写,同组其他用户可读可写,其他用户可读可写
#chmod   777  hello1.c    hello1.c 可读可写可执行
 
 
u:用户所有者
g:同组的其他用户;
o:其他用户 
a:所有人
 
+:添加权限
-:减去权限 
=  赋予权限 
 
r:读权限
w:写权限
x:可执行的权限 
 
#chmod   a+w    hello1.c   对hello1.c所有人都有可写的权限 
 
 
 
8.11  网络配置ifconfig
#ifconfig   查看网络配置情况
 //windows下是ipconfig
#ifconfig eth0  192.168.1.220     把我的虚拟机IP地址配置为192.168.1.220
#ping  192.168.1.79     连接192.168.1.79 这个网络,看是否能连接上 ?测试通路的
#ifconfig eth0  down     关闭eth0 这个网卡
#ifconfig  eth0  up    开启eth0 这个网卡
 
 
8.12  find   查找文件
# find   路径名    -name  "查找的文件"
#find   /home  -name "hello.c"     到/home下查找hello.c的文件
 
8.13  grep查找含有对应字符串的文件
#grep   "hello "  ./  -rn      在当前目录下查找含有hello的这个字符串的文件  r--读所有的文件,n:表示行号;
 
8.14 man  查询帮助 
#man  grep   查询grep的用法
 
8.15  ps查看进程的
#ps  -aux
 
8.16 kill
# kill  进程号  杀死对应进程的
 
8.17  cat
#cat  hello.c  在命令行下查看文件内容


3、vim的使用

vi
1 vi hello.c
2. 打开hello.c 以后,按一下i,这个时候是可以向文本中写入数据了
3. 写完以后,按一下esc,然后 :wq!保存退出
hello.c
 
#gcc  hello.c  -o hello     把hello.c 编译生成hello文件,-o  表示生成目标
#./hello
 
如果没有-o hello,那么生成a.out
#gcc  hello.c         ---生成 a.out  缺省文件,




原创粉丝点击