序言 PREFACE
猕猴桃派是在电子爱好者中广受欢迎的一款单板式计算机。自其问世以来,全世界诸多的开发者和爱好者在这个系统上开发了大量有趣的应用。大多数应用都是基于Linux操作系统,猕猴桃派官方网站也提供了几种典型的操作系统映像。用户只要下载后,复制到储存卡上,操作系统能够运行上去。

多数人只是在使用这个成熟的操作系统。本书则是介绍怎样从零开始,从源代码构造一个可用的Linux操作系统,并在这个系统上实现一些简单的应用。通过学习这一过程,计算机爱好者可以依据自己的须要移植相关的软件,并自如地调度系统的软、硬件资源,甚至构建自己的Linux发行版。
Linux是依循自由版权合同的操作系统,本书移植的绝大部份软件都是自由软件。可以免费获得,其中多数还容许用户对其更改和再发布,但用户依然须要遵循它们的版权合同。本书移植的软件所涉及的版权合同主要有以下几种。
·GNU通用公共版权合同(GeneralPublicLicense,GPL),出自自由软件基金会。这是Linux软件使用最多的一种版权合同,Linux内核、GCC、BusyBox等属这种;该版权合同要求由GPL衍生的软件也必须遵循GPL规范。
·GNU修身通用公共版权合同(LesserGeneralPublicLicense,LGPL),同样出自自由软件基金会。以这些版权合同发布的软件容许其他版权合同(虽然是私有版权)的软件使用,而不会影响其他版权合同。一般它们以共享库的形式被调用,以明晰版权合同之间的界线。但LGPL软件本身更改后的再发布仍须要遵循LGPL规范。GTK、FFMpeg等软件以LGPL发布。
·BSD及类BSD版权合同,源自加洲学院伯克利校区。该版权合同要求被授权者保留原著作权申明,但并不要求其衍生产品必须开源,比如Tcl/Tk。
·MIT及类MIT版权合同,源自麻省理工大学,又叫做“X版权合同”或“X11版权合同”,X11系统的软件均借此合同发布。它要求被授权者保留专著权和版权申明,对软件的使用和再发布相对修身。它也是自由软件基金会馆认可的自由软件许可合同条款,与GPL兼容。

·Python软件基金会版权合同(PythonSoftwareFoundationLicense,PSFL),出自Python软件基金会,要求被授权者在使用Python及衍生产品时须保持原有的版权合同,它与GPL兼容linux系统下树莓派拍照,但并不要求再发布的软件也开源。
·其他开源软件版权合同,比如zlib-libpng版权合同等。这种开源版权合同的共同特征是容许免费获得、修改、移植,并且不限制商业使用。但在使用和再发布时必须保持原版权申明,明晰原作者的贡献。
相比软件开发,移植软件的技术浓度并没有这么高,大量工作都是重复性的机械劳动。因而也有不少软件工程师将编译整个操作系统的工作写成一组脚本程序,一个典型的案例就是Buildroot。开发人员通过图形配置界面,选择自己须要的功能,输入几条命令linux模拟,剩下的就是等待。软件下载、编译、安装完全手动化实现。这个过程中linux系统下树莓派拍照,开发人员不须要了解软件的依赖关系,也不须要关心编译过程,甚至都不须要自己手工安装编译器。单纯从建立系统的目标来看,这些方式不失为一种便捷的选择,但对理解操作系统的构成帮助不大。
本书基于猕猴桃派平台,介绍从内核到桌面应用的整套系统的移植过程。在讨论软件移植方式的同时,还介绍这种软件的作用及它们之间的关系。作为一个完整的操作系统,这种软件远远不够,但早已足够胜任猕猴桃派的大部份应用场合。把握这种软件的移植方式,再移植其他软件也只是时间问题。
本书面向具有一定Linux系统使用基础的猕猴桃派爱好者。计算机技术的发展日新月异,软件的更新换代更是频繁。本书在移植过程中使用的软件,随着时间的推移会逐渐变得过时。但是,得益于人工智能、边缘估算、嵌入式应用的发展,Linux操作系统正处于发展上升期linux系统镜像下载,开源软件社区不断壮大。在可见的将来,软件移植的方式会越来越规范、越来越简单。假如有意愿自己订制Linux操作系统,本书可提供一定的参考。
限于笔者的知识水平和认知能力,书中难免存在疏忽之处,请求同行专家及读者批评见谅。
编者
2022年春于北京
