一、嵌入式技术分析
软件应用层: 程序 = 接口 + 语法 + 逻辑 + 算法
硬件底层: 程序 = 硬件 + 内核 + 语法
1、嵌入式开发系统 --> linux
2、编程语言 --> C语言
3、嵌入式开发平台:GEC6818 平台
二、安装嵌入式开发环境?
1、什么是虚拟机vmware?
其实虚拟机就是物理主机内部新建一台虚拟主机(基于物理机),虚拟机可以用于运行操作系统,虚拟机虽然是虚拟出来一台主机,我们摸不着。但是虚拟机实际占用物理内存空间。
2、为什么要安装虚拟机vmware?
主机 --> windows
虚拟机 --> linux
因为安装了虚拟机就可以在熟悉的windows环境下使用不熟悉的linux。
三、什么是Ubuntu系统?
ubuntu(标准教学系统).rar -> linux系统的镜像
解压 -> ubuntu -> Ubuntu-12.04.vmx -> 虚拟系统文件(可以使用虚拟机直接打开)
1、linux与ubuntu有什么关系?
一个嵌入式系统由内核、界面、操作模式、交互等组成。
linux只是指内核而已,并不代表界面、操作模式、交互。
ubuntu指的是以linux内核为内核,加上Ubuntu独有的界面、操作模式、交互组成的一个完整系统。
结论:ubuntu就是以linux内核为内核的其中的一个版本。
2、 如何使用虚拟机访问ubuntu系统?
1)双击打开vmware
2)点击第二个按钮 -> “打开虚拟机”
3)选择Ubuntu虚拟系统镜像文件路径 -> 打开
4)登陆界面
gec -> 普通用户登陆 -> 需要密码"123456"(小键盘)
Guest session -> 客人会话 -> 不需要密码 -> 登陆没有任何权限访问系统
5)全屏显示系统界面
虚拟机菜单栏 -> “查看” -> “立即适应客户机”
3、分析ubuntu系统特点?
1)图形简陋 -> 开发效率高
2)交互操作模式 -> 命令行 -> 在linux中,所有行为都是使用命令来进行控制!
3)内核源码开源,免费。
四、linux命令行
在linux下,想操作linux系统,就必须使用命令,而命令就是写在命令行。
1、命令行在哪里?
终端terminal
2、如何打开终端?
方式一: 双击terminal图标
方式二: ctrl + alt + T
3、如何调整字体大小?
放大: “ctrl” + “shift” + “+”
缩小: “ctrl” + “-”
4、 分析命令行,由什么东西来组成?
gec@ubuntu:~$
gec -> 用户名
@ -> 分隔符号,用于分开用户名与主机名。 用户名@主机名
- ubuntu -> 主机名
-
-> 分隔符号,用于分开主机名与当前的工作路径 主机名:当前的工作路径
-
-> 当前的工作路径
$ -> 用户申请 $->代表当前是普通用户 #->代表当前是超级用户
5、 命令写在哪里?
写在命令行后面,例如:
gec@ubuntu:~$ asjdfgsadufgsdf
asjdfgsadufgsdf: command not found -> 命令没有找不到!
五、linux系统目录架构?
1、windows目录架构与linux系统有什么区别?
windows是一个容器,内层目录永远小于/等于外层目录。
linux是一颗树内存,内层目录与外层目录之间没有大小包含关系,只有索引。
2、 研究linux目录架构?
“/” -> 根目录,在linux下所有目录都是由根目录引申出来的。
“~” -> 家/主目录,等价于 “/home/gec/”
六、linux基本命令
1、 查看当前的工作路径?
方式一: 通过命令行来查看。
gec@ubuntu:~$ -> 代表当前的工作路径就是在家目录
方式二: 使用linux命令来查看。
gec@ubuntu:~$ pwd
/home/gec 等价于 /home/gec/ 等价于 ~ -> 家目录
2、 查看某个路径下文件?
用法: ls + [路径] + [参数]
gec@ubuntu:~$ ls -> 默认列出当前工作路径下的全部文件,但是不包括隐藏文件。
Desktop Download examples.desktop
gec@ubuntu:~$ ls -a -> 列出所有的文件,包括隐藏文件。
Desktop Download examples.desktop
… -> 父目录
. -> 当前目录
结论: “ls” 等价于 “ls .”
gec@ubuntu:~$ ls … -> 列出上一级目录的内容
gec
结论: “ls …” 等价于 “ls …/” 等价于 “ls ./…/” 等价于 “ls ./…”
ls/cd/pwd ->没有修改系统资源,只是浏览linux系统,所以在任何的路径下都可以使用,没有受到权限限制。
例题: 假设当前在家目录,输入"ls ./…/…/ -a" 得到什么东西?
根目录的全部内容,包括隐藏文件。
3、 切换工作路径
1)用法:cd + [路径参数]
2)例子1: 假设当前在家目录下,想切换到根目录?
gec@ubuntu:~$ cd / -> 使用绝对路径
gec@ubuntu:/$ pwd
/
gec@ubuntu:~$ cd …/…/ -> 使用相对路径 -> 参照物: 当前目录"." -> 可以省略!
gec@ubuntu:/$ pwd
/
3)问题: 假设当前在家目录下,切换到home目录下?
绝对路径: cd /home
相对路径: cd …
结论: 绝对路径特征开头一定是"/",相对路径特征开头一定是"."(可以省略)
4)几个关于cd常用的特殊命令
切换到家目录 cd ~ 等价于 cd /home/gec/ 等价于 cd (cd什么参数都不加,默认切换到家目录)
切换到刚刚去过的路径 cd -(只能记住一次) 与环境变量有关
4、 创建普通文件? -> touch
用法: touch + [新文件的路径] + … -> 既可以是绝对,又可以是相对。
例子1: 假设当前在家目录,想在家目录下创建一个新的文件,名字叫test.c。
相对: touch ./test.c 等价于 touch test.c
绝对: touch /home/gec/test.c
例子2: 假设当前在/home目录,想在根目录下创建一个新的文件,名字叫example.txt。
相对: touch …/example.txt
绝对: touch /example.txt
提示错误: touch: cannot touch `…/example.txt’: Permission denied -> 权限拒绝!
1)为什么会出现这个错误?
Permission denied -> 因为权限不足导致执行失败!
当前$,代表一个普通用户,在家目录拥有一切的权限,可以在家目录下操作任何的东西都不会受到权限问题。
如果不在家目录下,则如果修改了系统(增加/删除),都会受到权限的拒绝!
2)如果真的需要在家目录以外的路径下创建/删除文件?
方式一:临时切换到超级用户来执行这个命令。 sudo + 命令
gec@ubuntu:/home$ sudo touch …/example.txt
[sudo] password for gec: -> 在linux输入密码,不会回显给用户。
结果: 当前还是一个普通用户。
方式二:切换到超级用户,再执行命令。
gec@ubuntu:/home$ sudo su -> 切换到超级用户
root@ubuntu:/home#
超级管理员名字: root
当前身份: #
root@ubuntu:/home# touch …/test.txt -> 直接执行命令,就不会受到权限干扰。
root@ubuntu:/home# exit -> 切换到普通用户
exit
gec@ubuntu:/home$
5、 删除普通文件? -> rm命令
用法: rm + [需要删除的文件的路径]
假设当前在家目录
练习1: 删除家目录下test.c
rm ./test.c
练习2: 删除根目录下example.txt和test.txt
sudo rm ../../example.txt ../../test.txt -> 可以跟多个文件的路径