当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]在1980年代,随着PC的普及,自由软件经历了繁荣。1983年,斯托曼(Stallman)联合全世界的程序员,通过网络邮件传递群组从麻省理工学院人工智能实验室发起了一项免费软件活动,目的是开发从属操作系统和编译器,到一套完整的用于基本应用程序的开源软件生态系统。这是造福子孙后代的GNU项目。操作系统是整个计划的核心部分。Stallman希望志愿者能够共同开发一个完整的开源操作系统,该操作系统将允许任何人自由编辑、共享和发布自己的修改版本。这个理念在其GNU声明中得到了充分体现。

 在1980年代,随着PC的普及,自由软件经历了繁荣。1983年,斯托曼(Stallman)联合全世界的程序员,通过网络邮件传递群组从麻省理工学院人工智能实验室发起了一项免费软件活动,目的是开发从属操作系统和编译器,到一套完整的用于基本应用程序的开源软件生态系统。这是造福子孙后代的GNU项目。操作系统是整个计划的核心部分。Stallman希望志愿者能够共同开发一个完整的开源操作系统,该操作系统将允许任何人自由编辑、共享和发布自己的修改版本。这个理念在其GNU声明中得到了充分体现。

斯托曼代表的开源软件运动对计算机产业的影响除了软件本身之外,还逐渐形成了一系列对源代码控制程度不同的协议以及对应的许可证制度,这是对整个知识产权领域的重要贡献。比如针对GNU项目,为了进一步防止开源软件在未来被主张所有权,所有GNU涉及的软件都被放到GNU通用许可证GPL(General Public License)的保护之下。此方式成为最早的开源软件知识产权管理方式之一。它授权给任何人以任何目的(包括恶意)免费使用软件源代码,但是要求任何使用GNU授权下的开源软件代码开发出来的软件必须沿用同一授权许可证。除了GPL开源协议,还有在这之前和之后出现的众多开源软件协议。如果从对源代码的控制程度来划分,这些协议大致可以分成三类,它们的代表分别是MIT许可证协议、Apache许可证协议和GPL许可证协议。

MIT协议是最为宽松的一类。它允许任何人以任何方式使用源代码,包括用于商业目的,而且衍生出来的软件可以闭源。与其类似的协议还有伯克利UNIX版本使用的BSD 3。Apache协议相对宽松,因为它仍然不强制衍生软件使用相同的许可证发布。但是衍生软件必须对所有未修改的部分使用相同的许可证。而且在每个许可文件中,必须保留再分发代码中的所有原始著作权和更改说明。而GPL协议则相对严格一点,它要求所有衍生软件产品必须沿用同一许可证。也就是说如果使用GPL协议的开源软件来开发新的软件产品,那么新的软件产品必须也是开源的,而且需要使用GPL协议来管理。

从创立历史来看,1988年推出的代表早期黑客精神的MIT协议出现的最早,其目的是让更多的人使用开源软件;随后是1989年斯托曼倡导的开源运动推出的GPL协议,其目的是在一个开源平台上产生更多的开源软件;2000年才出现的Apache协议则更像前两种协议的折中版本,是为了满足中间用户的需求。这些宽容程度不同的许可证协议为软件开源运动提供了多样的管理方式,不但有利于更多开源软件的出现,也为不同用户提供了不同的选择。

1984年斯托曼等人不断用C和LISP语言开发GNU软件。截止到1989年,GNU计划中包括编辑器Emacs、编译器、Shell在内的大部分应用软件都已经开发完成。由于和UNIX的兼容性,这些软件被广泛使用,但是唯独操作系统还没有被开发出来。1990年在开源软件基金会推动下,GNU重启开发操作系统的计划并将其命名为Hurd,但是开发进程依旧缓慢。事实上Hurd很快就不再被需要,因为一年后芬兰的一个学生在开源软件运动的影响下协调众多网络志愿者成功开发出了一套开源操作系统。该系统加入了GNU生态圈成为其操作系统的核心,这就是Linux。

Linux的出现和UNIX息息相关。1987年荷兰计算机教授、操作系统专家谭宁邦(Andrew Tanenbaum)为了给学生讲解操作系统原理,自己编写了一款模拟UNIX的16位字元MINX操作系统,并且将其作为开源软件发布。MINX影响了很多学生。但是由于当时已经出现了32位字元的386微处理器,所以大家希望能有一款32位元的开源操作系统。1991年芬兰赫尔辛基大学学生托沃兹在MINIX操作系统上用GNU的C语言编译器开发出了UNIX的终端模拟器,用来连接学校里的UNIX服务器。但是不久他意识到自己已经在编写操作系统内核的部分,索性开始正式编写32位元的操作系统。

基本编写完成后,托沃兹在USENET上关于MINIX的群组讨论中发布了自己的新程序。他的朋友把内核源代码上传到赫尔辛基大学的FTP服务器上并将其命名为Linux。Linux立刻吸引了众多开源软件志愿者。擅长编程的志愿者开始为Linux添加不同的模块和新功能,计算机新手或者是用户则负责系统的测试工作。随着新功能和模块的不断增加,Linux的更新速度也越来越快,有时达到每天一个新版本。为了让Linux有一个相对集中的发展方向,托沃兹设立了Linux管理小组,对志愿者提供的新功能模块进行筛选,把符合发展方向的模块融入到Linux的下一个正式版本中。

不久Linux内核通过几百名志愿者的共同开发成功地发展成为功能丰富的操作系统,其可靠性也因为数千名志愿用户的不断使用和反馈而远远高于同时期的微软视窗。开源软件运动也因为Linux的成功而被主流媒体关注。雷蒙在他总结开源运动的《大教堂与市集》一书中对此有详细的描述。

使Linux成为软件行业的开源软件核心的另一个关键创新是集中运行在多个服务器平台上的所有开源应用程序,以便用户可以自动下载和使用它们。这具有确保平台上应用程序的安全性和防止用户从第三方网站下载由恶意软件合并的程序的优点。苹果从该软件组织那里学习到的知识已形成了Apple App Store。在90年代,Linux在PC市场中的份额低于Microsoft Windows。到1990年代末,由于开源的优势,Linux被用作构建云计算平台的独立操作系统。随着Google和Amazon等云计算平台的出现,Linux变得越来越流行。2000年之后,计算机行业进入了移动计算时代,并提供了新操作系统占主导的机会。有趣的是,这一变化产生的两个移动操作系统可以归因于UNIX的开源版本:Apple iOS系统移植于macOs,而Android使用的是LINX内核。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近AI圈突然流行起开源概念。Meta承诺将会打造开源AI,马斯克起诉OpenAI,说它缺少开源模型。与此同时,一批科技领袖和科技企业纷纷为开源概念呐喊。不过科技界碰到一个难以解决的根本问题:它们对“开源AI”的概念无法...

关键字: 开源AI 开源软件 Meta OpenAI

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

所谓进程间通信就是在不同进程之间传播或交换信息,它是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息;还可以让一个程序能够在同一时间里处理许多用户的需求。

关键字: Linux 进程通信 编程接口

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯

2023年11月16日: MikroElektronika(MIKROE) ,作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,今天宣布推出一款基于单线设备的软硬件开源解决方案Cli...

关键字: 嵌入式 Linux 操作系统

Linux是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布。它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CP...

关键字: Linux 操作系统

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 Linux
关闭
关闭