嵌入式与Linux的一些基础知识

2019-07-12 18:06发布

一、嵌入式

嵌入式设备的主要组成部分:
  • 微处理器(CPU)
  • 存储器:
  • RAM(微处理器能直接访问的寄存器,掉电丢失,例如:内存)
  • ROM(用来存放大量数据信息,掉电不丢失,例如:硬盘、Flash、SD)
  • 通用设备接口和I/O接口:
  • 如:A/D、D/A、USB、Ethernet、I2C
嵌入式开发方式:
  • 嵌入式裸机开发:不经过任何操作系统直接控制(芯片的所有接口都需要自己去实现,例如:51单片机)
  • 带系统的嵌入式开发:通过系统来控制芯片(因为芯片中的接口都由操作系统配置好了,需要什么地方,直接调用就行了,减短了开发周期与开发成本)

二、Linux

Linux操作系统:
  • 内核版本:一份管理计算机硬件设备的源代码
  • 可在:The Linux Kernel Archives 查看最新版本的内核
  •  
  • 发行版本:在linux内核的基础上,再封装一个GUI界面,方便用户使用
  • 如:Ubuntu、CentOS、Debian......  可以去对应官网下载
GPL协议:(通用性公开许可证)
  • 在使用Linux进行开发的时候,开发者就已经默认遵循“GPL协议”
  • GPL协议
  • GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。
  • 开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售
Linux的文件系统:
  • “一切皆文件”:Linux中系统中所有的东西都是以文件的形式存在
文件的分类:
  • 普通文件 : 可执行文件、普通文本文件(使用ls -l  查看时,最前面显示为 -)
  • 目录文件 :用 mkdir 命令创建的目录(使用ls -l 查看时,最前面显示为 d)
  • 连接文件 :相当于windows中的快捷方式(使用ls -l 查看时,最前面显示为 l)
  • 字符设备文件:驱动文件,驱动与应用的数据交互是以字节流的方式形式交互的设备。(如:鼠标、键盘)(使用ls -l 查看时,最前面显示为 c)
  • 块设备文件:驱动文件,驱动与应用的数据交互方式是以块的方式交互(1024,2048,4096个字节的交互)的设备。
  • (如:硬盘、U盘)(使用ls -l 查看时,最前面显示为 b)
  • 管道文件:用于进程之间的数据交互 (使用ls -l 查看时,最前面显示为 p)
  • 网络通信文件:用于网络通信(使用ls -l 查看时,最前面显示为 s)
  •  
  • 注意:在设计驱动的时候考虑到 字符设备文件 与  块设备文件
  • 字符设备文件 响应快,但是存储效率低
  • 块文件设备 响应慢,存储效率高
如:
Linux中的文件结构(目录结构):“树形结构”
  • 所有文件都是从树根开始寻找:    /     根目录
  • Linux系统中没有盘符的概念,每一个在根目录中的文件夹,都有各自的功能
文件结构:
  • /           根目录,所有目录、文件、设备都在 根目录下
  • /bin      可执行文件存放目录
  • /dev     设备文件的所在目录(驱动文件的工作目录)
  • /etc      系统配置文件所在的目录(网络配置文件、文件系统、x系统配置文件、设备配置信息.......)
  • /home  家目录,用户拥有最高的权限的目录
  • /lib       第三方函数接口,所存放的目录(存放系统动态连接共享库,几乎所有程序都会用到该目录下的库)
  • /mnt     挂载目录(存放 挂载储存设备 的目录)   
  • /boot    Linux的内核及引导系统程序所需要的文件目录
  • /cdrom 可以将光驱文件系统挂在该目录下
  • /lost+found   当系统意外崩溃或者及其意外关机,而产生的一些文件碎片
  • /media  有些Linux发行版使用该目录挂载 USB接口的移动硬盘 或者 CD/DVD驱动器等
  • /opt       这里主要存放那些可选的程序
  • /proc     可以在这个目录下获取系统信息
  • /root      Linux超级权限用户root的家目录
  • /sbin      存放系统管理员的系统管理程序
  • /srv        服务启动后的工作目录
  • /tmp       临时文件目录,用来存放不同程序执行时产生的临时文件
  • /usr/local    主要存放手动安装的软件
  • /usr/share   系统共用东西的存放地
  • /var         这个目录的内容是经常变动的