树莓派开始,玩转Linux
文章平均质量分 88
树莓派系列的单片机支持Linux操作系统,为了让学习不那么枯燥,我们从树莓派出发,玩转Linux。
哒宰的自我修养
嵌入式软件工程师,liunx驱动工程师
展开
-
树莓派开始,玩转Linux30:树莓派网络诊断
树莓派开始,玩转Linux30:树莓派网络诊断通过对网络协议的介绍,我们已经了解了互联网通信的基本原理。互联网让树莓派变得更加强大。但这也意味着,网络问题会让人非常恼火。下面介绍树莓派常用的网络诊断命令,它们能帮助我们发现网络问题。1.基础工具:网络诊断的第一步是了解自己的设备,比如有哪些接口,IP地址都是什么。使用下面的命令来显示网络接口(Interface)信息,如接口名称、接口类型、接口的IP地址、硬件的MAC地址等。ARP协议用在局域网内部。借用ARP协议设备可以知道同一局域网内的IP-M原创 2021-05-26 14:24:14 · 569 阅读 · 1 评论 -
树莓派开始,玩转Linux29:遍阅网络协议
树莓派开始,玩转Linux29:遍阅网络协议前面的章节专注于计算机的内部,从这一章起转向计算机的外部,即网络功能。互联网的诞生晚于计算机,但它的发展极为迅速。通信协议模块,已经成为计算机操作系统密不可分的一部分。本章介绍网络协议的基础知识。1.通信与互联网协议:通信是一件奇妙的事情,它让信息在不同的个体间传递。动物散发着特殊的气味,传递着求偶信息。人则说着甜言蜜语,向情人表达爱意。猎人吹着口哨,悄悄地围拢猎物。服务生则大声向后厨吆喝,要加两份炸鸡和啤酒。红绿灯指挥着交通,电视上播放着广告,法老的金字塔原创 2021-05-26 14:04:57 · 360 阅读 · 4 评论 -
树莓派开始,玩转Linux28:分级存储
树莓派开始,玩转Linux28:分级存储树莓派上的三种电子元件都有存储数据的功能:CPU缓存、内存和SD卡储存,如表所示。三种元件的速度和容量各不相同。存储元件的容量和速度是个矛盾。为了兼顾性能和成本,计算机大多采取分级存储的形式,从而让不同速度的存储元件协同工作。分级存储的设计,兼顾了读取速度、存储容量和计算机的稳定性。树莓派3B型的各项储存器指标:1.CPU缓存:计算机把最快的存储元件用在最繁忙的地方。CPU是树莓派执行程序的核心,我们编写的程序和需要处理的各种数据都要加载到CPU中才能执行。原创 2021-05-26 13:41:47 · 517 阅读 · 0 评论 -
树莓派开始,玩转Linux27:鸟瞰文件树
树莓派开始,玩转Linux27:鸟瞰文件树在本章自下而上地介绍了外部存储器的底层细节。本章将自上而下,鸟瞰完整的Linux文件树。直接从属于根目录/的文件和目录都是系统必备的关键内容。我们来看它们的功能。1./boot和树莓派启动:/boot下挂载了FAT32格式的启动分区,里面的文件用于树莓派的开机启动。计算机启动是一个神秘而有趣的过程,先来看计算机常见的启动方式。当我们打开一台普通计算机的电源时,计算机一般会自动从主板的BIOS上读取其中所存储的程序。BIOS知道直接连接在主板上的硬件。它从默认原创 2021-05-26 13:10:55 · 251 阅读 · 0 评论 -
树莓派开始,玩转Linux26:仓库大管家
树莓派开始,玩转Linux26:仓库大管家在前面的章节中,我们已经用到了Linux的文件系统。通过文件系统,可以找到文件、新建文件、删除文件、读写文件。这些高层抽象的用户操作,完全可以满足日常需求。但对于Linux程序员和资深用户来说,只有知道了外部存储器的组织方式,才能深入Linux系统编程。1.外部存储设备:文件系统的终极目标是把大量数据有组织地放入外部存储设备中,比如树莓派的SD卡上。以SD卡作为外部存储器的计算机并不常见。在非树莓派的PC上,更常见的外部存储器是磁盘。外部存储设备的容量一般也比原创 2021-05-24 16:30:20 · 285 阅读 · 3 评论 -
树莓派开始,玩转Linux25:内存的一页故事
树莓派开始,玩转Linux25:内存的一页故事在讨论进程时,不免要提到内存。内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。本章从内存的物理特性出发,深入内存管理的细节,着重介绍了虚拟内存和内存分页的概念。1.内存:简单地说,内存就是一个数据货架。内存有一个最小的存储单位,大多数都是一个字节。内存用内存地址(Memory Address)来为每个字节的数据顺序编号。因此,内存地址说明了数据在内存中的位置。内存地址从0开始,每次增加1。这种线性增加的存储器地址称为线性地址(Lin原创 2021-05-20 11:53:00 · 255 阅读 · 0 评论 -
树莓派开始,玩转Linux24:进程调度
树莓派开始,玩转Linux24:进程调度进程是一个虚拟出来的概念,用来组织计算机中的任务。但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失。不过,进程的生命都得到了操作系统内核的关照。就好像疲于照顾几个孩子的母亲,内核必须做出决定,如何在进程间分配有限的计算资源,最终让用户获得最佳的使用体验。内核中安排进程执行的模块称为调度器(Scheduler)。本章将介绍调度器的工作方式。1.进程状态:调度器可以切换进程状态(Process State)。一个Li原创 2021-05-13 16:36:05 · 441 阅读 · 2 评论 -
树莓派开始,玩转Linux23:多任务与同步
树莓派开始,玩转Linux23:多任务与同步上一章提到了IPC,实际上它涉及一个关键问题:计算机的并发性。Linux系统是一个支持并发(Concunrrency)的操作系统。并发系统可以同时执行多个任务。多个进程通过IPC的数据沟通,可以合作完成一个复杂任务。然而,并发系统并不简单,必须解决同步的问题。1.并发与分时:在过去很长时间里,计算机使用的都是单核CPU。每个时刻,单核的CPU只能执行一条指令。从指令的角度看,单核CPU计算机不能并发。但单核CPU计算机可以同时运行多个任务。这种并发是通过原创 2021-05-13 15:53:47 · 1003 阅读 · 0 评论 -
树莓派开始,玩转Linux22:进程间的悄悄话
树莓派开始,玩转Linux22:进程间的悄悄话有了进程空间的概念,我们可以看到进程的独立性。每个进程的数据停留在自己的进程空间里,互不干涉。这样的独立性,让每个进程可以专注于自己的任务,大大减少了进程间相互干扰而出错的可能性。然而,有的时候,我们又需要打破这种独立性,让进程之间分享数据,从而协调工作。这个时候,就需要进行进程间通信(IPC,Inter-processCommunication)。1.管道:从广义上说,任何能在进程间传送信息的方式都属于IPC。我们先来回顾一些已经接触过的IPC的方式。一原创 2021-05-13 15:00:50 · 241 阅读 · 0 评论 -
树莓派开始,玩转Linux21:进程的生与死
树莓派开始,玩转Linux21:进程的生与死操作系统把计算机活动划分成进程。程序员编写的程序,也必须运行成进程,才能出现实际效果。既然进程在计算机活动中拥有如此关键的地位,那么我们理应更深入地了解进程。本章将介绍进程的创建和终结,以及与之相关的进程权限。1.从init到进程树:计算机开机时,Linux内核只创建了一个名为init的进程。在Linux运行期间,会有很多其他新进程,如Shell进程、音乐播放程序进程、邮件程序进程等。Linux内核不直接创建其他新进程,除了init进程之外的所有进程,都是通原创 2021-05-13 12:01:14 · 354 阅读 · 2 评论 -
树莓派开始,玩转Linux20:穿越时空的信号
树莓派开始,玩转Linux20:穿越时空的信号如果说操作系统是一栋大楼,那么内核就是这栋大楼唯一的管理员,应用程序的进程就是大楼里的房客。一般情况下,进程躲在自己的房间里,专注于自己的事情,而不必考虑其他进程。但有的时候,进程也要打破封闭,相互交流。信号就是一种向进程传递信息的方式。1.按键信号:在Shell中可以通过快捷键Ctrl+C来中断正在运行的进程,或者用快捷键Ctrl+Z来中止进程。按下这些按键时,Shell都向进程发出了信号。进程捕捉到这些信号后,会根据信号的含义来执行特定的动作,如结束进原创 2021-04-29 17:10:19 · 237 阅读 · 0 评论 -
树莓派开始,玩转Linux19:函数调用与进程空间
树莓派开始,玩转Linux19:函数调用与进程空间在Linux中,应用程序位于整个架构的顶层。应用程序的进程会获得一块独立的内存空间,即进程空间。C语言中变量的相关操作实际上就作用于进程空间。应用程序大部分是面向过程的C语言编写的,因此进程空间的使用也受到面向过程思维的影响。这里将用一章的篇幅来讲解进程空间的结构。1.函数调用:函数是面向过程语言提供的抽象语法,也是C语言区别于指令式程序的关键。在程序中,要先定义函数,然后才能调用函数。函数定义中说明了在函数调用发生时,进程应该做哪些事情。我们先原创 2021-04-29 16:38:37 · 303 阅读 · 0 评论 -
树莓派开始,玩转Linux18:完整架构
树莓派开始,玩转Linux18:完整架构Linux系统可以分为内核和应用程序两个主要部分,但如果细分,内核和应用程序之间,还可以有更精细的模块划分。完整的Linux系统架构,如图所示,下面分别来看Linux架构中的不同部分。1.内核模式与系统调用:计算机启动之后,Linux的内核程序启动成为一个单一的内核进程。这个单一进程将执行内核的相关功能。内核进程有权调用所有的计算机资源。当应用程序运行时,内核会分配给该应用程序一定的计算机资源。应用程序与硬件之间的互动,也必须经由内核进行。因此,即使是一个应用原创 2021-04-29 16:07:07 · 393 阅读 · 0 评论 -
树莓派开始,玩转Linux17:会编程的bash
树莓派开始,玩转Linux17:会编程的bashbash是一个命令解释器。在前面章节中介绍了在bash中输入命令,它会把输入的命令转化为特定的动作。本章将介绍bash的可编程性。bash提供了某些类似于C语言的编程语法,从而允许你用编程的方式,来组合使用Linux系统。1.变量:正如我们在C语言中看到的,变量是内存中的一块空间,可以用于存储数据。我们可以通过变量名来引用变量中保存的数据。借助变量,程序员可以复用出现过的数据。bash中也有变量,但bash的变量只能存储文本。1.变量赋值bash和C原创 2021-04-29 15:03:07 · 484 阅读 · 1 评论 -
树莓派开始,玩转Linux16:我的地盘我做主
树莓派开始,玩转Linux16:我的地盘我做主Linux是一个多用户系统。多个用户可以同时登录同一台Linux电脑,同时使用,互不干扰。因此,我们必须考虑到用户隐私和用户权限的问题。Linux从UNIX继承来一套用户系统,这套用户系统通过用户权限的设置,可以有效地保护用户隐私,并防止用户进行越权操作。1.我是谁:Linux用户登录时,输入了自己的用户名和密码。用户名是一串可读的文本,比如"pi"。作为惯例,用户名第一位是一个英文字母,后面可以跟随一串英文字母、数字或符号"-"。如果用户登录通过,那么原创 2021-04-29 12:01:29 · 238 阅读 · 0 评论 -
树莓派开始,玩转Linux15:万物皆是文本流
树莓派开始,玩转Linux15:万物皆是文本流数据是计算机最宝贵的财产。在Linux中,文本流(Text Stream)是不同程序、不同文件之间的数据桥梁。通过这一数据桥梁,Linux的不同模块之间可以方便地进行协作。文本流是UNIX阵营的一大特征,也是UNIX系统备受称赞的一个设计。1.文本流:在计算机中,所谓的数据就是0或1组成的二进制序列,每个0或1占一位。Linux系统对0和1的序列进行了分割,以字节(Byte)来作为数据单位。一个字节对应八位。比如下面一个八位的二进制序列就是一个字节:0原创 2021-04-29 11:31:17 · 251 阅读 · 0 评论 -
树莓派开始,玩转Linux14:从程序到进程
树莓派开始,玩转Linux14:从程序到进程计算机不止是存储数据的仓库,它还可以进行多种多样的活动,比如收发电子邮件、播放电影、陪人们下棋。应用程序给计算机带来了丰富的动作。Linux系统在应用层面的活动都以"进程"为单位进行。本章我们将初探进程。1.指令:计算机实际上可以做的事情非常简单。我们给CPU发出指令(Instruction),CPU就会执行这些基础动作。指令通常由一串二进制的序列构成。CPU会识别并执行这些指令。每一款CPU都有一套指令集,比如ARM CPU使用的精简指令集。一条指原创 2021-04-29 11:05:05 · 643 阅读 · 3 评论 -
树莓派开始,玩转Linux13:你好,文件
树莓派开始,玩转Linux13:你好,文件对于计算机来说,所谓的数据就是0和1的序列。Linux上的文件提供了数据存储的基本单元。此外,文件还以目录的形式组织起来,以便用户能迅速找到所需数据。本章将深入了解文件的组织方式。1.路径与文件:文件和文件组织构成了一个文件系统(File System)。Linux的文件系统是一个树状结构,整个文件系统有个共同的起点,就是树状结构的顶端,如图所示。Linux把这个起点称为根目录(RootDirectory),用符号/表示。文件树的末端可能是一个普通文件,原创 2021-04-29 10:43:09 · 229 阅读 · 0 评论 -
树莓派开始,玩转Linux12:Linux真身
树莓派开始,玩转Linux12:Linux真身我们经常用"Linux"来指代整个Linux操作系统。但对于不同人来说,"Linux"指代的含义又有所区别。说到托瓦兹写了Linux系统,意思是说他写了Linux的内核。而说到安装Linux系统,大多数时候是指安装了Linux的一个厂商版本。首先来区分描述Linux的几个关键名词:内核、GNU和厂商版本。1.什么是内核:Linux系统有狭义和广义两种定义。狭义来说,Linux实际上指Linux内核(kernel)。广义来说,Linux是指以内核为基础的原创 2021-04-29 10:13:54 · 472 阅读 · 0 评论 -
树莓派开始,玩转Linux11:你是我的眼
树莓派开始,玩转Linux11:你是我的眼树莓派官方出品有小型摄像头,用于录制视频或拍摄图片。树莓派加上小型摄像头,就构成了一个好玩的移动摄影装置。最新的官方摄像头版本是V2,配有8M像素的Sony IMX219感光板,可以满足一般的摄影摄像需求。V2摄像头又可以分为两款。一款摄像头用于正常的可见光拍摄,名为Pi Camera V2;另一款摄像头带有红外夜视功能,名为Pi NoIR Camera V2。本章的内容同时适用于这两种摄像头。1.摄像头的安装与设置:树莓派摄像头安装在一个方形的电路原创 2021-04-29 09:49:50 · 314 阅读 · 0 评论 -
树莓派开始,玩转Linux10:玩转蓝牙
树莓派开始,玩转Linux10:玩转蓝牙蓝牙是一个使用广泛的无线通信协议,这两年又随着物联网概念进一步推广。本章介绍蓝牙协议,特别是低功耗蓝牙,并用树莓派来实践。树莓派3中内置了蓝牙模块。树莓派通过UART接口和该模块通信。树莓派1和树莓派2中没有内置的蓝牙模块,不过你可以通过USB安装额外的蓝牙适配器。、本章以树莓派3为基础,介绍蓝牙通信。蓝牙由爱立信创制,旨在实现不同设备之间的无线连接。蓝牙无线通信的频率为2.4GHz,和Wi-Fi一样,都属于特高频。相对于低频信号来说,高频传输的速度比较快,穿透能原创 2021-04-28 18:07:24 · 986 阅读 · 0 评论 -
树莓派开始,玩转Linux9:GPIO触手
树莓派开始,玩转Linux9:GPIO触手树莓派可以通过很多接口来连接到其他设备。在各种各样的接口中,最有特色的就是一组GPIO(General Purpose Input/Output)接口。这组GPIO接口大大拓展了树莓派的能力。GPIO不仅能实现通信,还能直接控制电子元器件,从而让用户体验到硬件编程的乐趣。1.GPIO简介:树莓派3上的GPIO接口由40个针脚(PIN)组成,如图11-1所示。每个针脚都可以用导线和外部设备相连。你可以通过焊接的方式把导线固定在PIN上,也可以用母型的跳线套原创 2021-04-28 15:19:30 · 409 阅读 · 0 评论 -
树莓派开始,玩转Linux8:规划小能手
树莓派开始,玩转Linux8:规划小能手树莓派是一款低成本的电脑,因此它常充当小型的服务器,定期执行某些任务。笔者平时就会在局域网下接入树莓派,做一些数据备份和上传的工作。这时任务内容和执行时间已经明确。我们想把任务内容和执行时间预先写入树莓派中,让树莓派自动执行。这样用户就不用手动操作树莓派了。为了满足这一需求,Linux系统提供了经典的cron工具。1.用cron规划任务:cron是Linux系统下常用的任务规划软件,可以在cron中要求系统在特定的时间执行特定的任务。cron在系统中有一个运行着原创 2021-04-28 13:56:53 · 243 阅读 · 0 评论 -
树莓派开始,玩转Linux7:时间的故事
树莓派开始,玩转Linux7:时间的故事对于电子设备来说,时间都是基础性的功能,很容易被人忽视。20世纪的"千年虫"问题,就是时间方面设计缺陷造成的。对于网络连接的多设备来说,保持时间同步是一个新的问题。对于树莓派的众多应用场景来说,时间的准确性都至关重要。树莓派提供了NTP服务,通过网络来校正时间。即使在断网的情况下,也可以通过物理计时来校正时间。而树莓派使用的Linux系统,也提供了date命令这样便利的时间工具。1.NTP服务:树莓派中内置了NTP服务,所以连上网之后就可以自动调整时间。NTP是原创 2021-04-28 11:50:30 · 274 阅读 · 0 评论 -
树莓派开始,玩转Linux6:飘洋过海连接你
树莓派开始,玩转Linux6:飘洋过海连接你我们之前使用树莓派的方法,就是给它连上显示器、键盘和鼠标,然后像使用一台普通电脑一样使用它。但很多时候,我们把体积小巧的树莓派当作一台便携设备来使用。这时用户可不希望随身带着体积庞大的鼠标、键盘和显示器。如果能用手中的电脑直接连接树莓派,然后用该电脑的输入输出设备来操纵树莓派电脑,就可以省去很多不必要的麻烦。除此之外,树莓派在物联网情境下的应用,也离不开多样的远程连接方式。本章介绍连接树莓派的其他方式。1.局域网SSH登录树莓派:常见的家庭或办公网络都是以原创 2021-04-28 11:12:26 · 292 阅读 · 0 评论 -
树莓派开始,玩转Linux5:更好的树莓派
树莓派开始,玩转Linux5:更好的树莓派拿到树莓派后,需要进行一些初始化配置,以便用起来更加方便。除此之外,可能需要安装一些软件,以便树莓派能实现更加强大的功能。1.常见初始化配置:树莓派系统的一般用户配置可以通过图形化的配置窗口完成。在菜单中选择Preferences选项,就可以看到配置窗口。配置窗口的界面如图所示。命令行的配置工具提供了更加丰富的配置功能。在Shell中通过下面的命令可以进入命令行配置工具:Shell中弹出的配置页面如图所示。此外,Linux中还可以通过命令或修改配置原创 2021-04-28 10:34:28 · 868 阅读 · 0 评论 -
树莓派开始,玩转Linux4:具备良好的编辑器
树莓派开始,玩转Linux3:具备良好的编辑器人类经常用文字来表达和交流抽象的信息。人们使用键盘向电脑输入的大多是文字。计算机学科通常把一串文字构成的信息称为文本(Text)。很多用户使用计算机的主要目的就是编辑文本:写公文、写电子邮件、写小说…精通计算机的程序员,也往往以文本形式的程序向计算机表达自己的意志。在Linux系统下,很多配置文件也是人类可读的文本。在计算机的用户软件中,一定有文本编辑器的一席之地,文本编辑器可以创建、修改和保存文本。1.图形化的文本编辑器:不建议使用,不加以阐述;2.原创 2021-04-26 15:28:05 · 286 阅读 · 1 评论 -
树莓派开始,玩转Linux3:贝壳里的树莓派
树莓派开始,玩转Linux3:贝壳里的树莓派树莓派的图形化桌面算不上精美,如果真想用图形化界面进行办公,那么你恐怕会失望。用树莓派的浏览器打开网站上的视频,很可能会遭遇页面加载缓慢和视频播放卡顿等情况。如果想打开多个窗口工作,那么桌面很容易崩溃。毕竟,树莓派的性能不高,而计算机图形的呈现相当消耗资源。幸好,Linux提供了一种更易与树莓派互动的方式------Shell。1.初试shell:打开终端,桌面上就会出现一个黑色背景的窗口,窗口上显示着:这里的pi是用户名,raspberrypi是计算机原创 2021-04-26 14:01:51 · 322 阅读 · 0 评论 -
树莓派开始,玩转Linux2:开始使用树莓派
树莓派开始,玩转Linux2:开始使用树莓派树莓派是一款信用卡大小的超小型电脑。它的长度为8.56cm,宽度为5.6cm,厚度只有2.1cm。树莓派把整个系统集成在一块电路板上的解决方案,被称为SoC(System on Chip)。SoC在手机等小型化设备中很常见,功耗也比较低。树莓派使用SoC的解决方案,正适合其超小型电脑的应用场景。1.解剖树莓派:树莓派是一台功能完整的电脑。现代电脑都采用了冯·诺依曼体系。冯·诺依曼在1945年发表了一份报告,把计算机分为五大组件,如图4-1所示,树莓派也不例原创 2021-04-26 12:01:24 · 738 阅读 · 0 评论 -
树莓派开始,玩转Linux1:树莓派的简介,诞生,心脏和大脑
树莓派开始,玩转Linux1:树莓派的诞生1.内容简介:本书以树莓派为基础工具,讲解Linux操作系统。树莓派是近年来流行的微型电脑,能用于各种有趣的硬件开发。树莓派中安装了Linux系统,可以充当操作系统的学习平台。本书按照"树莓派背景------树莓派使用------Linux使用------操作系统原理------实操项目"的顺序展开。读者不仅能体验到玩树莓派的乐趣,而且能全面了解操作系统的核心概念和原理。2.树莓派的诞生:2006年,剑桥大学年轻的助教埃本·厄普顿(Eben Upton)(如原创 2021-04-26 11:31:09 · 1129 阅读 · 1 评论