我是抱着玩的心态开始用电脑的。自从家里有了电脑之后,我就想方设法抓起鼠标和键盘打一会儿游戏。《金庸群侠传》《仙剑》《星际》《盟军敢死队》,这些老游戏都玩了个遍。父母担心我沉迷游戏,一度没收了我的鼠标和键盘。总之,当时的电脑只是个娱乐平台。

那个时候已经在提“20世纪是计算机的世纪”。好莱坞电影开始把黑客塑造成孤胆侠客。我经常抱着《电脑报》或《大众软件》,幻想着自己成为一名侠客一般的计算机高手。但对于一个内地小城的孩子来说,深入接触计算机技术的机会很有限。我曾经很认真地找了一套计算机等级考试的书看。把二进制运算、SQL命令、QBasic语法都记得滚瓜烂熟,却因为装不好编译环境,最终没能写出一个可以使用的软件。后来读那些顶级黑客的传记,讲他们从小如何如何编程,一直很好奇他们是如何度过环境搭建这个难关的。后来发现,这些人都有机会接触一些编程高手,所以在他们的眼里,根本不认为这是太大的问题。

上大学时,我选择了物理专业。物理专业做数值模拟和数据处理,C语言和Fortran语言编程也是必修课。有了大学里的资源,编程环境的搭建变成了小菜一碟。只是自己的电脑太过老迈,动不动就要死机。朋友们呼啸着打Dota时,我却在为Word触发的蓝屏头痛。相熟的朋友看不下去,扔给我一张光盘,要我重装Ubuntu系统。Ubuntu是当时最流行的一个Linux版本。死马当活马医,我安装了光盘上的Ubuntu。系统装好了,电脑死机的次数大为减少。不过Linux下的图像化界面确实和Windows有差距,办公软件也比不上Office。我戚戚然地把Linux当作低成本的二等方案。但无论如何,当时正值我做“大学生研究计划”,运行稳定的Linux还是救我于水火。事后请朋友吃饭,问朋友哪里来的光盘,才晓得Ubuntu的安装光盘可以免费领取。

更让我刮目相看的是Linux下的软件分发。那个时代还没有苹果App Store这样的东西。所谓的在线软件分发,就是上网下载exe安装包。用了Ubuntu之后,我需要的软件基本都可以在软件源中找到。在终端输入一行命令,编译环境就搭建好了。我不用担心病毒,而且大部分情况下也不需要付费。再加上学校里有Ubuntu镜像,下载一个软件往往只需要几秒钟。于是,探索Linux下的软件成了我的一大业余爱好,我渐渐习惯了用ImageMagick来做图片处理,用FFmpeg来转换视频,用Wget来做网络下载。这些基于命令行的应用软件,再搭配bash的批处理功能,往往能实现强大的复合功能。

我也越来越享受Linux系统提供的编程环境。在写C语言和Fortran语言作业时,我就开始用vim编写自己的作业,用GCC和GFortran来编译,再用GDB来调试。这个过程要比Windows下的IDE麻烦。但当接触其他语言时,相同的工具可以复用,不用每一次都花费大量时间来熟悉全新的IDE。后来在Linux下学习Python语言时,很容易就可以上手。如果说编程是去游乐园,那么Linux为入园玩耍提供了直通车。想起小时候为编译环境苦恼的自己,真想穿越时光送去一张Ubuntu的安装盘。

我觉得对于一个电脑爱好者来说,Linux最美的地方就是开放。Linux的开放可以分为多个层面。软件层面是开放的,用户可以免费使用。文档也是开放的,你可以在终端下用man命令方便地查询。操作系统是开放的,你可以自由地调整系统,也可以深入了解其原理。代码上亦是开放的,你随时可以看到世界上顶级程序员写下的源代码。在Linux系统下,“实现”和“如何实现”是合二为一的。吃鱼的同时,钓鱼的本事也可以学到。因此,Linux提供了一个绝佳的学习平台。

后来,太太送给我一部树莓派做生日礼物。我惊喜地发现,树莓派使用的操作系统正是Linux。更棒的是,树莓派的底层硬件也很开放。它可以方便地通过有线或无线的方式和硬件外设进行连接。它对使用方式没有太多限制。于是,在后来的智能硬件创业项目,我总是在研发版本中使用树莓派。无论是作为硬件的树莓派,还是作为软件的Linux,都遵循了相同的规律:开放战胜了封闭。知识的共享带来更加活跃的创造力,也给社会带来协同合作的机会。

几年前,我读到印度的一个公益项目。这个项目募集旧电脑,在电脑上安装Linux系统,再发放给贫困地区的儿童使用。这个项目给孩子们带来的不止是欢乐,还改变了他们的命运。当树莓派发布的新闻出来时,我想到的就是这款微型电脑的社会意义。后来读到树莓派之父厄普顿发明这台小电脑的初衷,果然也是教育。我由此确信,有很多人和我抱着相同的见解。

如今,“科技取代人类”的言论甚嚣尘上,很多人对技术霸权顶礼膜拜,对人类的未来充满绝望。其实,科技本身是中性的。科技可以取代人们的工作,也可以帮助人们更好地就业。像树莓派和Linux这样的技术,尊重了用户本身的创造力。它们用一种开放协作的态度,提高了社会的温度。我也一直抱着这样的理念,坚持在博客上分享自己的所知。我还记得自己在探索计算机时无路可循的尴尬。即使是出于简单的同理心,我也希望自己的分享能帮助任何一个在门槛上抓耳挠腮的学习者。

借着这股心劲,我克服了写作的羞涩,投入到这本书的写作中。我希望这本书能以树莓派硬件为平台,全面讲解Linux原理。全靠昕梓的通力合作,我才能顺利完成这个野心勃勃的目标。杜鹃、陈思为帮我审读了全书,提出大量的修改意见,让书稿变得真正可读。安娜会在关键的时候给我们提供任何所需的帮助,全程引导了写作过程。最后,这本书还要感谢上海的地铁11号线。全靠这班地铁上的空座位,我才能坐着写出大部分文字。

在设计本书内容时,昕梓和我决定尊重读者,不避讳艰深的内容。毕竟,树莓派本身只是一个入口。这个入口的背后有着丰富的操作系统知识。无论是编程,还是深入理解计算机,一定深度的操作系统知识都不可或缺。我们会从树莓派的基本使用讲起,一直深入到操作系统原理本身。在后面一部分,我还加入了基于树莓派的实践项目,希望能抛砖引玉,激发用户的创造力。当然,篇幅所限,我也不得不舍弃一些细节。但我相信,只要体验到边玩边学电脑的乐趣,那么其他技术的掌握也都可以沿着相同的轨迹重复进行。

那样的话,这本书就没有遗憾了。

本文为《树莓派开始,玩转Linux》一书前言

转载于:https://www.cnblogs.com/vamei/p/9292419.html

在地铁11号线上写书相关推荐

  1. 上海轨道交通十一号线,上海地铁十一号线,上海地铁11号线,上海地铁十一号线线路图...

    规划中的上海轨道交通11号线类似北京的地铁十号线,采取主线和支线两条线路,主线由嘉定新城到浦东三林(一期 ),支线在西北段上连接上海国际赛车场和安亭汽车城.线路总长 60公里.二期由浦东三林到南汇临港 ...

  2. 在武汉火车站转车需要出现吗_武汉火车站可以在站内换乘哪些站 武汉地铁6号线和1号线/13号线换乘...

    武汉火车站位于地铁4号线上,目前武汉火车站不可以站内换乘,因为它不是换乘站,不过在武汉地铁规划中,将来会有地铁10号线.5号线.19号线等换乘.此外我们再来了解一下武汉地铁6号线和1号线/13号线换乘 ...

  3. 中国企业说专列国庆开行 北京地铁一号线披上中国红迎国庆

    面对疫情.灾情,涌现出许多企业尽己所能,有的企业捐资捐物,有的提供技术支持,有的提供人力支持,充分展现了新时代中国企业的爱国情怀和责任担当.为了弘扬企业家精神,传播做强国企业,创大国品牌的企业目标&q ...

  4. 北京地铁五号线全攻略 23座车站乘坐细节大起底

    5号线就在附近,偶尔出远门需要用到,但又对车站位置不熟悉,转此帖,备用 转自 http://news.xinhuanet.com/newscenter/2007-10/06/content_68370 ...

  5. java 地铁二号线站编号和站名的练习

    1.广州地铁二号线站编号和站名对应关系如下: 1=广州南站.2=石壁.3=会江.4=南浦.5=洛溪.6=南洲.7=东晓南.8=江泰路.9=昌岗.10=江南西.11=市二宫.12=海珠广场.13=公园前 ...

  6. 及刻大数据:深圳地铁10号线客流分析,华为周边最熙攘

    2020年,无疑是深圳地铁建设的重要一年,地铁网里程突破400公里,多条线路有新进展.连接龙岗.龙华.福田的10号线开通后,贯通南北,结束了一些片区不通地铁的历史,给沿线居民出行带来了极大的便利. 1 ...

  7. 上海公布新一轮轨交规划 迪士尼线将能与11号线换乘

    上海公布新一轮轨交规划 迪士尼线将能与11号线换乘[@more@] 上海公布新一轮轨交规划 迪士尼线将能与11号线换乘 http://news.online.sh.cn 2010-10-05 11:5 ...

  8. 北京地铁16号线下月起开建 投资366亿2016年完工 (zz)

    //z 2013-02-17 16:30:18 IS2120@BG57IV3.T842110641 .K[T135,L1775,R58,V1938] 这条线开建了,山后线被发改委否了,"择机 ...

  9. Python自学笔记4:关于print的简单实操项目(打印一句话、天气预报、机票购买、北京地铁一号线运行图)

    b站网课链接:https://www.bilibili.com/video/BV1Sw411Z779?p=146 第146讲 使用方法:新建一个.py文件,复制,粘贴,运行 1.输出'奋斗成就更好的你 ...

最新文章

  1. 欠拟合和过拟合学习笔记
  2. value数字 vue_基于Vue开发数字输入框组件
  3. 指针,c语言关键字,作用域,生命周期,内存数据存储
  4. [Pyhon疫情大数据分析] 一.腾讯实时数据爬取、Matplotlib和Seaborn可视化分析全国各地区、某省各城市、新增趋势
  5. python鸢尾花数据集_Python实现鸢尾花数据集分类问题——使用LogisticRegression分类器...
  6. U-Boot 图形化配置及其原理
  7. 7-26 Windows消息队列(25 分)
  8. 阿里云Https部署网站
  9. python3.5 安装PyCrypto
  10. python 石头剪刀布,Python石头剪刀布完整代码
  11. leetcode142. 环形链表 II
  12. mysql创建视图语句_MySQL创建视图的语法格式
  13. python框架知乎_知乎网站构架变迁
  14. 自然语言处理之分词、命名主体识别、词性、语法分析-stanfordcorenlp-NER(二)
  15. VS2019 调用大漠插件免注册方法引发异常 0x00000000 处(位于 DMSPACE1.exe 中)引发的异常: 0xC0000005: 执行位置 0x00000000 时发生访问冲突。
  16. 【BZOJ4199】品酒大会(NOI2015)-后缀数组+并查集
  17. 基于opencv的证件照换背景
  18. SecureCRT登录会话密码解密
  19. python中numpy模块下的np.clip()的用法
  20. 蓝牙技术|了解蓝牙LE Audio的Auracast广播音频

热门文章

  1. SpringBoot实践(十五):登录的token操作
  2. 考研国家线预测,22分数线会上涨吗?
  3. 台式机和便携机属于传统的小型计算机,用途和价格来分类,台式机和便携机均属于传统的小型计算机...
  4. 关于Ubuntu同时安装opencv2和opencv3
  5. 大数据安全: Hadoop安全模型的演进
  6. wsdl生成客户端代码
  7. centos 计算器_CENTOS上安装Torque4.0.3找不到计算节点
  8. html 图片取消纵横比,html – CSS:使Canvas尽可能大,同时保持纵横比
  9. android 获取物理内存,Rowhammer:针对物理内存的攻击可以取得 Android 设备的 root 权限...
  10. 第15关 夫拉姆谷仓地带(难度高!)