《树莓派学习指南(基于Linux)》——导读

简介:


screenshot

序 言

树莓派这个名字听起来像是外婆烘培的点心或者只是一个陌生的名词,它其实是一种嵌入式计算机。或许你以前听说过它(实话说,它的名字和标志并没有包含太多的信息量),但是它远不止是一个奇怪的名字。

著名的Commodore 641发布于1982年,销量超过了1700万台,它被认为是史上最畅销的电脑。对我来说更重要的是,它是我的第一台电脑。9岁生日前的那个圣诞节(那时Commodore 64已经发布快10年了),我得到了一台新款Commodore 64(C64C)作为礼物。它在功能上和老款没什么差别,但是更漂亮。我拿到它时,它已经连在了一台崭新的14寸电视上(这台电视甚至有遥控器)并设置妥当。我怀疑爸爸早就萌生了这个他自鸣得意的狡猾计划:如果他能在我睡着的时候把一切布置好,圣诞节的早上我就会忙着玩我的新电脑,这样他和妈妈就能多睡一小会儿。

可惜事与愿违,虽然一切都设置完成,甚至电视都已经连到电脑的信号上,但他忘了一件简单却关键的事:告诉我怎么加载一个游戏。不用说,他睡懒觉的计划泡汤了。

游戏存储在卡式磁带上。卡式磁带的历史比CD更久,C64甚至需要使用一种名为数据磁带机(Datasette)的特殊设备进行读取(什么,你说CD是什么意思!)。令人郁闷的是,由于经常出故障,磁带机在商店里呆的时间比在电脑上呆的时间更长。但由于它是载入程序的唯一途径,没有它电脑也不能用,百无聊赖下我只能自己啃手册。意外的是,这事儿教会了我如何良好地编写古老的BASIC程序(Beginners All Purpose Symbolic Instruction Code,初学者通用符号指令代码,你能相信我居然还记得它的全称吗?)。

虽然我相信这故事很吸引人,但是你可能会好奇我为什么在这里提到它。这些事发生在20多年前,它们和今天能有什么联系呢?通过摆弄C64C和其后的Amiga(它至今仍是我最喜欢的机器),我真正了解了计算机能干些什么。与同时代的个人电脑相比,Amiga有很多不足,但它的图像更清晰,使用更可靠,声音更动听。这一切都源于它优秀的硬件设计。Amige爱好者是我所见过最足智多谋的一群人。谁能想到你还可以通过实时时钟端口去连接一个高速存储设备呢?

只有真正理解计算机中每个部件是如何组合在一起时,玩转它才有可能。只有了解了背后的工作原理,才能更好地发挥机器的性能。最近一段时间,我的工作重点就在于不断提高产品性能。为了达成这一目标,我必须搞清楚各种软硬件是如何工作的。企业需要像我这样的人来推动项目进展,但他们发现真正理解计算机内部工作原理的人越来越难找了,因为像我这样的人成了少数派。这正是树莓派基金会正在竭尽全力扭转的局面。

是什么原因导致了现在的局面呢?时过境迁,计算机不再是什么稀罕物:旧时王谢堂前燕,飞入寻常百姓家。它们渗入到人们的日常工作中,使用计算机不再是什么难事。这情况和家用轿车类似。大家都大致知道轿车是怎么工作的,却很少有人会对此做深入的研究。人们关心的是轿车运输乘客的能力,而不关心这是如何做到的。说到计算机,人们知道如何启动它、安装软件等,却不关心它的底层运行原理。从另一个角度说,这不只意味着只有少数人对计算机原理感兴趣,更意味着只有更少数的人明白计算机的原理不只是双击一个图标这么简单。

这个问题已经渗入到大学教育中。教别人编程是一项富有挑战的工作,它需要一种许多人难于驾驭的特定思维方式。大学的经典计算机科学课程首先会教授逻辑门、内存工作原理以及CPU指令集相应内容。当你理解了这些内容后才能去尝试学习C语言。这是因为C语言虽然是一种高级语言,但是它和硬件有着紧密的联系。理解硬件工作原理后学习C语言自然事半功倍。

但是随着学校扩招、教学课时缩减等一系列变化,现在的学生能接触到的计算机基础知识日益减少。显然大学也不得不做出相应调整,不再重点教授底层硬件知识,转而教授Java和脚本语言。因为这类语言会为你处理所有“恼人的比特”,你可以假装它们并不存在(实际上这样做会导致一些问题,参见“无限内存的谎言”)。

这从应用的角度看是件很棒的事,然而当你要提高程序的处理效能时(比如你的数据处理脚本的运行速度非常缓慢),你就无所适从了。更糟糕的是,就算有人告诉你有种技术可以提高效能,你也完全不明白他在说些什么。

当然,也不是所有的大学都是如此。我就读于香港理工大学,这里的计算机系统结构课程就十分深入并且覆盖了大量主题。如果想在课上拿个好分数,需要为CPU模拟程序实现CPU缓存。不用说,大家可以在这样的课上学到很多东西。书到用时方恨少,编程要从娃娃抓起。在小学最后一年里我曾教一群7岁的孩子学习BBC BASIC(他们甚至获得了学校颁发的证书),孩子们非常喜欢这课。计算机让他们能够创造出想象中的虚拟世界(孩子们喜欢创作小型文字冒险游戏),他们享有“最终解释权”。孩子们都很有创造力,他们会去添加新的法术、新的道路、秘密入口等。好吧,他们有时还是需要帮把手的(毕竟他们只有7岁),但至少他们有着创造新奇事物的愿望。

目 录

[第 1 章 初尝树莓派
1.1 新出炉的派](https://yq.aliyun.com/articles/98514/)
1.2 树莓派配料表
1.3 Linux
1.4 将Raspbian烧录到SD卡
1.5 首次启动
1.6 配置树莓派
本章小结
[第 2 章 开始探索
2.1 欢迎使用LXDE](https://yq.aliyun.com/articles/98885/)
2.2 开始菜单
本章小结
第 3 章 驾驭命令行
第 4 章 玩转文件系统
第 5 章 重要命令
第 6 章 在命令行中编辑文件
第 7 章 管理你的树莓派
第 8 章 搭建LAMP
第 9 章 无线树莓派
第 10 章 树莓监控派
第 11 章 树莓派媒体中心

相关文章
|
1月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
1月前
|
存储 消息中间件 网络协议
Linux 系统编程从入门到进阶 学习指南
本文旨在为初学者提供一个清晰的 Linux 系统编程入门指南,带你步入 Linux 系统编程的世界,从基本概念到实用技能,一步步建立起您的知识体系。
Linux 系统编程从入门到进阶 学习指南
|
5月前
|
Linux Android开发 虚拟化
我花了半个月,整理出了这篇Linux内核开发学习指南(学习路线+知识点梳理)
我花了半个月,整理出了这篇Linux内核开发学习指南(学习路线+知识点梳理)
|
Linux
Linux交叉编译——树莓派工具链安装
Linux交叉编译——树莓派工具链安装
296 0
|
Linux 程序员 开发者
树莓派4B安装docker-compose(64位Linux)
安装了64位Linux的树莓派4B,如何安装docker-compose,本文用实战完成了docker-compose的安装过程,并且将期间遇到的问题一一指出,避免您踩坑
573 0
树莓派4B安装docker-compose(64位Linux)
|
安全 Java Linux
树莓派4B安装64位Linux(不用显示器键盘鼠标)
无需显示器键盘鼠标,只需网线连接,给树莓派4B安装64位操作系统
258 0
树莓派4B安装64位Linux(不用显示器键盘鼠标)
|
存储 传感器 机器学习/深度学习
树莓派踩坑备忘录 --使用Linux
树莓派踩坑备忘录 --使用Linux
163 0
树莓派踩坑备忘录 --使用Linux
|
Linux API 数据库
树莓派进入Bullseye版本!完全兼容Linux,视频驱动全开源(下)
时隔两年,树莓派系统又进行了重大更新。不过这次更新肉眼可见的部分比较少,更多的都是细节和驱动,更加现代化的界面,更兼容Linux,更多开源代码!
183 0
树莓派进入Bullseye版本!完全兼容Linux,视频驱动全开源(下)
|
数据可视化 Linux
树莓派进入Bullseye版本!完全兼容Linux,视频驱动全开源(上)
时隔两年,树莓派系统又进行了重大更新。不过这次更新肉眼可见的部分比较少,更多的都是细节和驱动,更加现代化的界面,更兼容Linux,更多开源代码!
337 0
树莓派进入Bullseye版本!完全兼容Linux,视频驱动全开源(上)
|
Ubuntu Linux 开发者
树莓派及其他硬件平台国内外Linux镜像站全汇总
本文收集整理国内对于Raspberry Pi、CubieBoard、pcDuino等各种Linux开源硬件平台,所使用的Raspbian、Arch Linux ARM等各种ARM次级架构的Linux系统,在国内外的软件源镜像站。
492 0