一、Linux职业方向
①、服务器运维;②、应用软件开发;③、设备驱动开发。

二、设备驱动开发

Linux 系统的一个重要设计哲学是一切皆文件。包括硬件设备,对于系统来说也是一个文件,所以系统向上层应用程序提供 open、 write、 read、 close 等统一的文件操作接口,应用程序可以利用这些接口对设备文件进行访问,从而实现对硬件设备的初始化、写入、读取以及关闭等操作。
当系统接收到应用程序的这些访问请求时,它会向下查询对应设备具体的操作函数,然后调用相应的函数处理请求,而这些针对不同设备具体的操作函数就是设备驱动程序。因此,设备驱动就是这样一种把硬件与操作系统连接在一起的程序, Linux 系统会提供统一的格式,设备驱动开发工程师根据具体的设备按照系统格式要求实现相应的设备操作函数。

三、i.MX 系列应用处理器
i.MX 应用处理器包括 i.MX8、 i.MX7、 i.MX6 及 i.MX28 系列,被广泛应用于工业控制、汽车电子领域,其中 i.MX6 系列应用处理器包含基于 Cortex 的单核、双核和四核系列的的产品,其架构有,主要采用 CortexA7, Cortex-A9 作为内核,部分型号采用 Cortex-A9+Cortex-M4 的双核心方案。主频从 528MHz~1.2GHz 不等。该系列芯片主要应用在车载多媒体系统、数字标牌电子阅读器、人机界面、物联网网关、智能工业控制系统等轻量、低功耗的领域,在物联网推进的大潮下,该芯片定有一番作为。
本篇采用的是i.MX6ULL系列处理器,包含一个Cortex-A7内核,主频有528MHz、792MHz和900MHz。如型号为 MCIMX6Y2CVM08AB 的芯片,它属于 i.MX6ULL 系列,是主频为 792MHz、芯片封装为 BGA,尺寸为 14x14mm,焊盘间距为 0.8pitch的工业级芯片。

四、Linux内核和发行版
Linux 内核负责控制硬件、管理文件系统、进程管理、网络通讯等,但它本身并没有给用户提供必要的工具和应用软件。基于 Linux 内核搭配各种各样系统管理软件或应用工具软件,从而组成一套完整可用的操作系统,见下图。我们称这样的系统为 Linux 发行版(distribution)。完整的 Linux 系统就如同汽车, Linux 内核构成了最为关键的引擎,不同的发行版就类似使用相同引擎的不同车型。

五、根目录
根目录是 Linux 下所有文件和目录的起点,它的路径用斜杠符号“/”来表示。家目录(个人目录)路径为“/home/用户名/” ,整个 Linux 系统有且只有一棵从根目录开始的目录树,目录树只是一个管理上的概念,它本身并不跟硬件挂钩的,例如这些文件之所以是存储在磁盘中,是因为在安装系统时,已经把整个根目录“挂载”在了磁盘上。所谓挂载就是把存储器的分区与某个目录对应起来,对该目录进行访问时,相应的操作会被映射到其挂载的存储器分区,而这些存储器包括磁盘、光盘、 U 盘、
NAND FLASH 等。


①、/bin 目录:/bin 目录是/binary 的缩写,它包含众多普通用户可用的命令。而命令的本质就是可执行程序,即二进制 bin 文件。熟悉 Linux 命令后,回头再来本目录看看,会发现 ls、 cp、 cat 等命令,都可以在此处找到。
②、/sbin 目录:/sbin 目录是/system bin 的缩写,它的功能类似/bin ,不过它存储的一般是系统程序,一般需要使用管理员权限才能使用。如显示系统已加载的模块命令 lsmod、对存储器分区进行格式化的 mkfs 等。
④、/etc 目录:/etc 目录是/etcetera 的缩写,据说原始的 Unix 设计是在该目录存放些零碎的内容,但现在该目录现在已发展成存放系统的各种配置文件,非常重要。如用户信息文件/etc/passwd,系统初始化文件/etc/rc 等,系统依据这些配置运行。在给系统安装某些软件或服务后,常常需要修改/etc 目录下的文件进行配置。
⑤、 /root 目录:/root 是超级用户的目录,在 Ubuntu 下默认为空。
⑥、 /home 目录:/home 即前面介绍的家目录。
⑦、/lib 目录:/lib 目录是/library 的缩写,根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。如 C 语言标准库,这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
⑦、/dev 目录:/dev 目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访
问/dev/mouse 来访问鼠标的输入,就像访问其他文件一样。
⑧、/proc 目录:/proc 目录通常包含了内核导出到用户空间的内核信息,通过访问该目录下的文件可以查看这些信息。
**⑨、/sys 目录:**与/proc 目录类似, /sys 目录用于把内核的设备驱动导出到用户空间,可通过访问 sys 目录及其下的文件,来查看甚至控制内核的一些驱动设备。

⑩、/tmp 目录:/tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用/var/tmp 来代替/tmp,因为前者可能拥有一个更大的磁盘空间。
11、/boot 目录:/boot 目录存放引导加载器 (bootstrap loader) 使用的文件,如 lilo,核心映像也经常放在这里,而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。
12、/mnt 目录:/mnt 目录是系统管理员临时挂载 (mount) 文件系统的安装点。 /mnt 下面可以分为许多子目录,例如/mnt/dosa可能是使用 msdos 文件系统的软驱,而/mnt/exta 可能是使用 ext2 文件系统的软驱, /mnt/cdrom 光驱等等。
13、/media 目录:/media 目录通常是一些自动挂载的设备目录,如光盘和 U 盘,部分系统会自动挂载到这个目录下,然后通过
自动挂载的目录可以访问对应的设备。
14、/usr 目录:
曾经的 /usr 还是用户的家目录,存放着各种用户文件——现在已经被 /home 取代了(例如 /usr/someone 已经改为 /home/someone)。现代的 /usr 只专门存放各种程序和数据,用户目录已经转移。虽然 /usr 名称未改,不过其含义已经从“用户目录”变成了“unixsystem resource” (Unix 系统资源)。值得注意的是,在一些 unix 系统上,仍然把 /usr/someone 当做用户家目录,如 Minix。
• /usr/bin : 所有可执行文件,如 gcc, firefox 等(指不包含在 /sbin 和 /bin 内的);
• /usr/include : 各种头文件,编译文件等时需要使用;
• /usr/include/’ package-name’ : 程序特定的头文件;
• /usr/lib : 所以可执行文件所需要的库文件;
• /usr/scr:源代码, Linux 内核的源代码就放在该目录下。

六、文件类型
**①、普通文件:**如文本文件, bin 文件等。
**②、可执行文件:**可执行文件包括脚本和应用程序,这些文件可被系统加载运行,类似 Windows 下的 bat 脚本、 exe 程序文件
等。
**③、链接文件:**链接文件分为硬链接和软链接:• 硬链接是指同一个文件的不同别名。• 软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
**④、目录文件:**在 Linux 下目录也是文件。
**⑤、设备文件:**硬件设备也是文件,通过打开对应的设备文件可以初始化设备,部分设备还可以通过读写设备文件实现对硬件的控制。

七、用户及用户组
①、Linux是多用户操作系统,root用户管理其他用户和计算机的全部资源;
②、在Linux中,每个用户都有一个特定的UID编号来标识一个系统用户,并且把标号0分配给root用户的uid,它可以分配给每个用户不同的权限,因此每个用户可进行的操作也不同。
③、Linux 的文件属性,可以分为读权限、写权限、执行权限。读权限以及写权限,基本上和 Windows 操作系统是一样的。

八、Linux命令行
Shell是命令行解释器,Linux系统与用户通过Shell进行交互的。

①、Shell:指命令解释器,常见的解释器有bash、sh,在Ubuntu系统默认是bash解释器,所以有时候说bash也是指命令行。
②、终端(Terminal):通常指用来运行 Shell 的程序,示场景的不同有不一样的名称,如 Ubuntu 系统自带的叫本地终端,嵌入式开发板常常提供串口进行输入输出的串口终端,通过网络访问的 ssh 终端。
③、控制台(Console):特指某些终端,通常是指它的物理形态,如带键盘和显示器的物理设备。
④、快捷键 Ctrl+Alt+T,可以快速打开一个命令行终端;
cd命令:change dir 的简写,它可以把终端当前所在的路径切换至目标路径。
mkdir 命令是 make directory 的简写,它可以在文件系统中创建一个新的目录。
touch 命令可以创建不存在的文件,或者 touch 通过参数修改目录或文件的日期时间,就是摸一下,更新它的时间。
ls 命令功能为显示指定目录下的内容(文件及子目录) ,还可以查看文件大小,修改日期等等信息。
cat 命令是 通常被用来在终端下输出文件的内容进行查看。
echo 命令的功能是在终端上打印一段文字,也可以把终端的变量内容打印出来。
输出重定向到文件“>”或“»”,其中“>”会直接用输出覆盖原文件,而“»”则把输出追加到原文件的末尾。
rmdir 命令是 remove directory 的简写,它的功能是删除空的目录。
rm 命令是 remove 的简写,它的功能是删除一个或多个文件或目录。
sudo 命令是 switch user do 的简写,意思是切换用户去做某件事情。
clear命令是 清除命令行的内容及打印出来的内容。
reboot/poweroff 命令来控制系统的重启与关机。
man命令可以用来查找更多的命令。

Linux开发速记教程之第一篇相关推荐

  1. Linux Capabilities 入门教程--进阶实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  2. unity怪物攻击玩家减血_像素地牢开发(unity) 第一篇(并不是第一天)

    像素地牢开发(unity) 第一篇(并不是第一天) 大二的时候就特别想制作独立游戏,每次逛b站刷到独立游戏制作的视频就十分羡慕,然鹅我却一直鸽着(别问,问就是刷视频,打王者),但我还是利用了一些空闲时 ...

  3. 《嵌入式Linux开发实用教程》

    <嵌入式Linux开发实用教程> 基本信息 作者: 朱兆祺    李强    袁晋蓉 出版社:人民邮电出版社 ISBN:9787115334831 上架时间:2014-2-13 出版日期: ...

  4. <Android开发> Android vold - 第一篇 vold前言简介

    本系列主要介绍 Android vold,分为以下篇章 <Android开发> Android vold - 第一篇 vold前言简介 <Android开发> Android ...

  5. Linux Capabilities 入门教程--基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  6. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    最新Finchley版本请访问: https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 或者 http://blog.csd ...

  7. 软件腐化的七个特征之僵化性和脆弱性(设计模式原则的反面) (《敏捷软件开发》读书总结第一篇)

    文章目录 前言 僵化性(Rigidity) 原文 我的理解 脆弱性(Fragility) 原文 我的理解 前言 最近读Robert C. Martin(Bob大叔)的书<敏捷软件开发>,准 ...

  8. 全面介绍数砖开发 Delta Lake 的第一篇论文

    今年八月,Delta Lake 的第一篇论文发布了,我当时写了个总体介绍:Delta Lake 第一篇论文发布了,感兴趣的朋友可以先看总体介绍,再来详细了解一下本篇论文.因为篇幅较长,全文超3万字,建 ...

  9. 追溯系统二次开发源代码免费分享---第一篇

    第一篇:先说下它出生的背景 5年前自己写了个hcrain架构,本想在公司推广应用起来.基本完成时,换工作了. 一直没有机会,前两看有机会自己写个系统.果断用起来并完善它,我只能说,绝对是个:个人快速开 ...

最新文章

  1. python读取txt文件代码-python批量处理txt文件的实例代码
  2. laravel 邮件SwiftMailer
  3. 修改CentOS 7.2系统的主机名
  4. 【数学与算法】协方差矩阵 与 w*w^T 的关系
  5. 七步从Angular.JS菜鸟到专家(2):Scopes
  6. 简历不会做?集设网社区带来精致的个人网站供你参考
  7. 数据结构笔记(十三)-- 串的堆分配存储表示
  8. IT技术人需要具备哪些才能成功
  9. java项目中遇到的幂等性问题
  10. cad2014卡顿的解决方法_cad卡顿解决办法(cad卡顿怎么解决)
  11. 蓝牙的重命名与波特率修改
  12. html5粒子引擎 proton,质子引擎 Proton Engine
  13. yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild错误
  14. (转载)重新编译SJF2410以适应NM9805并口卡(PCMICIA接口)
  15. JAVA实现UDP单播组播
  16. 驾校学员信息管理系统
  17. 360极速浏览器显示密码
  18. Hadoop学习笔记——入门教程(虚拟机安装LinuxHadoop环境搭建配置)
  19. php transfer-encoding: chunked,“Transfer-Encoding: chunked” header in PHP
  20. 三菱fx2n64mr说明书_三菱FX2N-64MR-UA1/UL使用说明书FX2N-64MR-UA1/UL手册 - 广州凌控

热门文章

  1. 2020Android手机专业摄影,华为MateBook 13 2020款:专业摄影师的修图利器
  2. 英特佩斯远程数据采集和车队管理平台
  3. 利用机器学习进行情感分析
  4. 微信小程序显示loading效果,微信小程序节流效果,微信小程序生命周期,微信小程序组件的创建与使用
  5. 2021年Q2邮件安全报告:钓鱼邮件季环比增长21.27%
  6. 乔布斯的3个工作技巧:教你如何得到自己想要的
  7. 21_余丙森_概论_2.3_2.4_泊松定理_一维连续r.v.及分布
  8. cms开发(CMS开发)
  9. Keil5写的第一个ARM汇编
  10. 持续发挥供应链优势,美菜网助力春节期间餐饮业回春