Linux
开发人员 | 社区贡献者, Linus Torvalds |
---|---|
写在 | C ,汇编语言等 |
OS家庭 | 类似于Unix |
工作状态 | 当前的 |
来源模型 | 开源 |
初始发行 | 1991年9月17日 |
存储库 | git .kernel .org /pub /scm /linux /kernel /git /torvalds /linux .git / |
营销目标 | 云计算,嵌入式设备,大型机计算机,移动设备,个人计算机,服务器,超级计算机 |
可用 | 多种语言 |
平台 | Alpha , Arc , Arm , c-Sky , Hexagon , IA-64 , Loongarch , M68K , Microblaze , MIPS , NIOS II , Openrisc , Pa-Risc ,PowerPC, PowerPC , Risc-V , S390 ,S390, Superh ,Superh,Sparc , sparc ,x86,x86,x86,x86, x86 ,x86, x86 |
内核类型 | 整体 |
userland | GNU , Busybox |
预设 使用者介面 |
|
执照 | GPLV2 |
官方网站 | 内核.org |
该系列的文章 | |
Linux内核 Linux分布 |
linux ( Lin -uuks )是一个基于Linux内核的开源Unix式操作系统家族,这是一家操作系统内核,该家具于1991年9月17日首次发行,由Linus Torvalds发行。 Linux通常被包装为Linux发行版(发行版),其中包括内核和支持系统软件和库,其中许多由GNU项目提供。许多Linux发行版在其名称中使用“ Linux”一词,但是Free Software Foundation使用并推荐名称“ GNU/Linux ”来强调GNU软件在许多分布中的使用和重要性,从而引起一些争议。
流行的Linux发行版包括Debian , Fedora Linux , Arch Linux和Ubuntu 。商业分销包括Red Hat Enterprise Linux和Suse Linux Enterprise 。桌面Linux发行版包括X11或Wayland等窗口系统,以及GNOME或KDE等离子体等桌面环境。用于服务器的分布可能根本没有图形用户界面,或者包含解决方案堆栈,例如LAMP 。由于Linux是可以自由重新分配的,因此任何人都可以为任何目的创建分布。
Linux最初是基于Intel X86体系结构为个人计算机开发的,但此后已将其移植到比任何其他操作系统的平台上。由于基于Linux的Android在智能手机上的主导地位,包括Android在内的Linux截至2022年5月,包括Android的Linux是所有通用用途操作系统中最大的基础。 Chromebook台式计算机运营着基于Linux的Chernel Chromeos ,主导了美国K – 12教育市场,占美国笔记本销售低于300美元的近20%。 Linux是服务器上的领先操作系统(超过96.4%的前一百万个Web服务器的操作系统是Linux),领导其他大型铁系统(例如大型计算机) ,并用于世界上所有500个最快的超级计算机(如截至截至截至截至2017年11月,逐渐流离失所所有竞争对手)。
Linux还可以在嵌入式系统(即操作系统)上运行,其操作系统通常内置在固件中,并且对系统进行了高度量身定制。这包括路由器,自动化控件,智能家居设备,视频游戏机,电视(三星和LG智能电视),汽车(Tesla,Audi,Mercedes-Benz,Mercedes-Benz,Hyundai和Toyota)和Spacecraft ( Falcon 9 Rocket, Dragon Crew Capsule ,以及毅力的漫游者)。
Linux是免费和开源软件协作的最突出的例子之一。根据其各自的许可条款,例如GNU通用公共许可证(GPL),任何人都可以在商业或非商业上使用,修改和分发源代码。例如,Linux内核是在GPLV2下获得许可的,但系统调用允许通过系统调用呼叫内核的代码除GPL下的呼叫。
历史
前体
肯·汤普森(Ken Thompson ),丹尼斯·里奇(Dennis Ritchie ),道格拉斯·麦克罗伊( Douglas McIrroy )和乔·奥萨纳(Joe Ossanna)于1969年在美国AT&T的贝尔实验室(AT&T'S Bell Labs )构思和实施。 Unix于1971年首次发行,完全用集会语言写成,当时的常见实践也是如此。 1973年,在关键的开拓方法中,丹尼斯·里奇(Dennis Ritchie)用C编程语言重写(除了某些硬件和I/O例程外)。 UNIX的高级语言实现的可用性使其移植到不同的计算机平台。
由于较早的反托拉斯案禁止其进入计算机业务,因此AT&T将操作系统的源代码许可作为对任何询问的人的商业秘密。结果,Unix迅速增长,并被学术机构和企业广泛采用。 1984年, AT&T剥离了其区域运营公司,并从其义务中释放了不进入计算机业务的义务;贝尔实验室摆脱了这一义务,开始将UNIX作为专有产品出售,在该产品中,不允许使用用户对其进行修改。
Onyx Systems于1980年开始销售基于微型计算机的早期Unix工作站。后来, Sun Microsystems成立于斯坦福大学的学生项目的衍生产品,也开始于1982年在基于Unix的桌面工作站出售。虽然Sun Workstations并未使用商品,但PC硬件后来最初开发了Linux,它代表了第一次成功的商业尝试,该尝试是分发主要运行UNIX操作系统的主要单用户微型计算机。
随着Unix越来越“锁定”作为专有产品, GNU项目由Richard Stallman于1983年启动,其目标是创建完全由免费软件组成的“完整的Unix兼容软件系统”。工作始于1984年。1985年后来,Stallman成立了自由软件基金会,并于1989年撰写了GNU通用公共许可证(GNU GPL)。到1990年代初,操作系统中所需的许多程序(例如库,编译器,编译器, ,完成文本编辑器,命令行的外壳和窗口系统),尽管低级元素(例如设备驱动程序,守护程序和内核)被称为GNU Hurd ,但仍停滞不前。
Minix是由计算机科学教授Andrew S. Tanenbaum创建的,并于1987年发行,是一种最小的类似Unix的操作系统,针对学生和其他想学习操作系统原理的人。尽管MINIX的完整源代码是免费的,但许可条款阻止其成为免费软件,直到2000年4月的许可更改为止。
尽管直到1992年才发布,但由于法律并发症, netBSD , OpenBSD和FreeBSD降落的386BSD的发展尚未发布,早于Linux。 Linus Torvalds在不同的场合表示,如果GNU内核或386BSD在当时(1991年)可用,他可能不会创建Linux。
创建
1990年秋天,托瓦尔德(Torvalds)参加了UNIX课程。该课程使用了运行Ultrix的Microvax微型计算机,所需的文本之一是操作系统: Andrew S. Tanenbaum的设计和实施。这本教科书包括Tanenbaum的Minix操作系统的副本。正是在这门课程中,Torvalds首先接触了Unix。 1991年,他对操作系统感到好奇。他对Minix的许可感到沮丧,Minix当时仅限于教育使用,他开始使用自己的操作系统内核,最终成为Linux内核。
1991年7月3日,为了实施UNIX系统调用,Linus Torvalds试图未成功获得POSIX标准文档的数字副本,并要求comp.os.os.os.minix NewsGroup 。在找不到POSIX文档后,Torvalds最初诉诸于大学使用的Sunos文档的系统调用,用于操作其Sun Microsystems服务器。他还从Tanenbaum的Minix文本中学到了一些系统电话。
Torvalds开始在Minix上开发Linux内核,并且在Linux上还使用了为Minix编写的应用。后来,Linux成熟和进一步的Linux内核开发发生在Linux系统上。 GNU应用程序还取代了所有MINIX组件,因为使用Fledgling操作系统使用GNU项目的免费代码是有利的。只要在其他计算机程序中也可以在其他计算机程序中重复使用,只要它们也以相同或兼容许可发布,就可以在其他计算机程序中重复使用。 Torvalds启动了从其原始许可证的转换,该许可禁止商业重新分配到GNU GPL。开发人员致力于将GNU组件与Linux内核集成在一起,从而创建了功能齐全且免费的操作系统。
命名
Linus Torvalds想称他的发明为“ Free ”,“ Free”,“ Freak”和“ X”的Portmanteau (作为对Unix的典故)。在他在系统上的工作开始期间,该项目的一些Makefiles包括“ Freax”的名称约半年。最初,托瓦尔德(Torvalds)认为“ linux”这个名字,但将其视为过于自负。
为了促进开发,将文件上传到1991年9月的Funet的FTP服务器( ftp.funet.fi
) 。当时的服务器并不认为“ freax”是一个好名字,因此他在没有咨询Torvalds的情况下将服务器命名为“ Linux”。但是,后来,Torvalds同意“ Linux”。
根据Torvalds的新闻组帖子,“ Linux”一词应发音( lin -uuks )与“ print”和“ put”中的简短“ i”一样。为了进一步说明应该如何发音“ Linux”一词,他在内核源代码中包括了音频指南。然而,在这张录音中,他用短而近距离的前面元音宣布Linux为/ ˈlinʊks / ( leen -uuks ),而不是像他的新闻集团帖子那样近乎近乎近的近距离近距离元音。
商业和受欢迎的摄取
在生产环境中采用Linux,而不是仅由业余爱好者使用,而是在1990年代中期开始在超级计算社区中首次起飞, NASA等组织开始使用运行Linux的廉价商品计算机群体替换越来越昂贵的机器。商业用途始于戴尔(Dell )和IBM ,其次是惠普(Hewlett-Packard ),开始提供Linux支持,以逃避Microsoft在台式操作系统市场中的垄断。
如今,Linux系统在整个计算过程中都可以使用,从嵌入式系统到几乎所有超级计算机,并在服务器安装(例如流行的Lamp Application堆栈)中获得了位置。在家庭和企业台式机中使用Linux发行量一直在增长。 Linux发行版也在上网本市场中变得很流行,许多设备都安装了定制的Linux发行,并且Google释放了自己为上网本设计的Chromeos 。
Linux在消费市场中取得的最大成功可能是移动设备市场,Android是智能手机上的主要操作系统,并且在平板电脑上非常受欢迎,最近在可穿戴设备上。 Linux Gaming也随着阀门的支持而增长,它对Linux的支持并推出Steamos ,这是其自己面向游戏的Linux发行版,后来在其Steam Deck平台中实现。 Linux分布也在各种地方和国家政府(例如巴西联邦政府)中广受欢迎。
当前发展
Linus Torvalds是Linux内核的铅维护者,并指导其发育,而Greg Kroah-Hartman是稳定分支的主要维护者。 ZoëKooyman是自由软件基金会的执行董事,该基金会又支持GNU组件。最后,个人和公司开发第三方非GNU组件。这些第三方组件包括大量工作,可能包括内核模块,用户应用程序和库。
Linux供应商和社区将内核,GNU组件和非GNU组件组合和分发,并以Linux发行的形式与其他软件包管理软件相结合和分发。
设计
许多开源开发人员认为,Linux内核不是设计而是通过自然选择而发展的。 Torvalds认为,尽管Unix的设计充当了脚手架,“ Linux随着很多突变而生长 - 并且由于突变远不那么随机,但它们比DNA中的Alpha粒子更快,更有指向。”埃里克·S·雷蒙德(Eric S.志愿者人数仅通过互联网进行协调。质量不是通过严格的标准或专制来维持的,而是通过每周发布并在几天之内从数百个用户那里获得反馈的天真的简单策略,从而创造了一种快速的darwinian选择突变的选择。开发人员。”竞争操作系统的工程师Bryan Cantrill同意“ Linux并未设计,它已经发展”,但认为这是一个限制,建议某些功能,尤其是与安全性相关的功能,无法演变为”在一天结束时,这不是生物系统,而是一个软件系统。”
基于Linux的系统是一个模块化的UNIX式操作系统,它从1970年代和1980年代在UNIX中建立的原理得出了许多基本设计。这样的系统使用单片内核,Linux内核,该内核处理过程控制,网络,访问外围设备和文件系统。设备驱动程序要幺直接与内核集成,要幺是在系统运行时加载的模块。
GNU Userland是基于Linux内核的大多数系统的关键部分,Android是显著的例外。 gnu c库是C标准库的实现,是内核 - 用户空间接口所需的Linux内核系统调用的包装器,该工具链是一系列对Linux开发至关重要的编程工具(包括编译器(包括编译器)用于构建Linux内核本身), Coreutils实施了许多基本的UNIX工具。 GNU项目还开发了受欢迎的CLI壳Bash 。大多数Linux系统使用的图形用户界面(或GUI)构建在X窗口系统的实现之上。最近,Linux社区试图作为新的Display Server协议代替X11,促进Wayland 。许多其他开源软件项目为Linux系统做出了贡献。
用户模式 | 用户应用程序 | Bash , Libreoffice , Gimp , Blender , 0 AD , Mozilla Firefox ,... | ||||
---|---|---|---|---|---|---|
系统组件 |
启动守护程序: OpenRC , Runit , Systemd ... |
系统守护程序: Polkitd , SMBD , SSHD , Udevd ... |
窗口管理器: X11 , Wayland , SurfaceFlinger (Android) |
图形: 梅萨, AMD催化剂,... |
其他库: GTK , QT , EFL , SDL , SFML , FLTK , GNUSTEP ,... |
|
C标准库 |
fopen , execv , malloc , memcpy , localtime , pthread_create ...(最多2000个子例程)GLIBC的目的是快速, MUSL的目标是轻量级, UCLIBC目标嵌入式系统,为Android编写了仿生的系统。所有目标都旨在易于使用。 |
|||||
内核模式 | Linux内核 |
stat , splice , dup , read , open , ioctl , write , mmap , close , exit 等(大约380个系统呼叫)Linux内核系统呼叫接口(SCI),目的是POSIX / SUS-稳态 |
||||
过程调度子系统 | IPC子系统 | 内存管理子系统 | 虚拟文件子系统 | 网络子系统 | ||
其他组件: ALSA , DRI , EVDEV , KLIBC , LVM ,设备映射器, Linux网络调度程序, NetFilter Linux安全模块: Selinux , Tomoyo , Apparmor , Smack |
||||||
硬件( CPU ,主内存,数据存储设备等) |
Linux系统的安装组件包括以下内容:
- 引导加载程序,例如GNU Grub , Lilo , Syslinux或SystemD-boot 。这是一个程序,将Linux内核加载到计算机的主内存中,通过计算机打开时和执行固件初始化后的计算机执行。
- 一个初始计划,例如传统的Sysvinit和Newer SystemD , OpenRC和Upstart 。这是Linux内核启动的第一个过程,并且是过程树的根源。它启动过程,例如系统服务和登录提示(无论是图形还是在终端模式下)。
- 软件库,其中包含可以通过运行过程使用的代码。在使用Elf -Format可执行文件的Linux系统上,管理动态库的使用的动态链接器称为LD -Linux.so 。如果设置了该系统供用户本身编译软件,则还将包括标题文件以描述已安装库的编程界面。除了Linux系统上最常用的软件库( GNU C库(GLIBC))外,还有许多其他库,例如SDL和MESA 。
- 基本的UNIX命令,GNU Coreutils是标准实现。存在嵌入式系统的替代方法,例如CopyLeft Busybox和BSD许可的玩具盒。
- 小部件工具包是用于为软件应用程序构建图形用户界面(GUI)的库。提供了许多小部件工具包,包括GTK和GNOME项目开发的杂物,由QT项目开发并由QT公司领导,以及启蒙基金会图书馆(EFL)主要由启蒙团队开发。
- 包装管理系统,例如DPKG和RPM 。或者,可以从二进制或源粉末中编译包装。
- 用户界面程序,例如命令外壳或窗口环境。
使用者介面
用户界面(也称为shell)是命令行界面(CLI),图形用户界面(GUI)或附加到关联硬件的控件,这对于嵌入式系统通常。对于桌面系统,默认用户界面通常是图形的,尽管CLI通常是通过终端模拟器窗口或单独的虚拟控制台获得的。
CLI Shell是基于文本的用户界面,它们都使用文本进行输入和输出。 Linux中使用的主要外壳是最初是为GNU项目开发的Bourne-Bour-Again壳(BASH)。大多数低级Linux组件,包括Userland的各个部分,都专门使用CLI。 CLI特别适合重复或延迟任务的自动化,并提供非常简单的过程间通信。
在桌面系统上,最受欢迎的用户界面是GUI壳,与广泛的桌面环境一起包装,例如KDE等离子体, Gnome , Mate,Mate , Cinnamon , Lxde , Pantheon和XFCE ,尽管存在各种其他用户接口。大多数流行的用户界面基于X窗口系统,通常简称为“ X”。它提供网络透明度,并允许在一个系统上运行的图形应用程序在另一个系统上显示在另一个系统上,在该系统上用户可以与应用程序进行交互;但是,X Window系统的某些扩展无法通过网络工作。有几个X显示器服务器,具有参考实现X.org Server是最流行的。
服务器分布可能为开发人员和管理员提供命令行界面,但为最终用户提供了自定义接口,该接口是为系统用例设计的。通过位于另一个系统(不一定基于Linux)的客户端访问此自定义接口。
X11存在几种类型的窗口管理器,包括平铺,动态,堆叠和合成。窗口管理器提供了控制单个应用程序窗口的位置和外观的手段,并与X窗口系统进行交互。更简单的X窗口管理器,例如DWM , Ratpoison , i3WM或HerbstluftWM提供了简约的功能,而更精细的窗口管理器(例如FVWM , Enlightenment或Window Maker)提供了更多的功能,例如内置的任务栏和主题,但仍是轻便的,但在何时何时轻巧与桌面环境相比。桌面环境包括窗口管理器作为其标准安装的一部分,例如Mutter (Gnome), Kwin (KDE)或XFWM (XFCE),尽管如果用户可以选择使用其他窗口管理器。
Wayland是一种显示服务器协议,旨在替代X11协议;截至2022年,它已获得相对广泛的采用。与X11不同,Wayland不需要外部窗口管理器和合成管理器。因此,Wayland Compositor扮演显示服务器,窗口管理器和合成管理器的角色。韦斯顿是Wayland的参考实施,而Gnome的Mutter和Kde的Kwin被移植到Wayland作为独立展示服务器。自第19版以来,启蒙运动已经成功移植。
视频输入基础架构
Linux目前有两个现代的内核 - 用途API用于处理视频输入设备:视频流和广播的V4L2 API,以及用于数字电视接收的DVB API。
由于不同设备的复杂性和多样性,并且由于这些API处理的格式和标准大量,因此这种基础架构需要发展以更好地适合其他设备。此外,一个好的用户空间设备库是成功使用用户空间应用程序的关键,以便能够使用这些设备支持的所有格式。
发展
Linux与许多其他流行的当代操作系统之间的主要区别在于Linux内核和其他组件是免费的开源软件。 Linux并不是唯一的操作系统,尽管它是迄今为止使用最广泛的操作系统。一些免费的开源软件许可证是基于CopyLeft的原则,一种互惠:从CopyLeft片段中获得的任何工作也必须是CopyLeft本身。最常见的免费软件许可证GNU通用公共许可证(GPL)是CopyLeft的一种形式,用于Linux内核和GNU项目中的许多组件。
基于Linux的分布旨在由开发人员与其他操作系统和已建立的计算标准进行互操作性。 Linux系统在可能的情况下遵守POSIX, SUS , LSB , ISO和ANSI标准,尽管迄今为止只有一个Linux分布已获得POSIX.1认证,即Linux-ft。
自由软件项目虽然是通过协作开发的,但通常是彼此独立生产的。但是,软件许可明确允许重新分配的事实为大规模项目提供了基础,这些项目收集了由独立项目收集的软件,并以Linux发行的形式一次就可以使其一次可用。
许多Linux发行版管理系统软件和应用程序软件包的远程集合,可通过网络连接下载和安装。这允许用户适应操作系统的特定需求。分布由个人,松散的团队,志愿组织和商业实体维护。分布负责已安装的Linux内核,常规系统安全性以及将不同的软件包集成到连贯整体中的默认配置。分布通常使用apt , yum , zypper , pacman或portage之类的软件包管理器来安装,删除和从一个中心位置更新系统的所有软件。
社区
分销主要是由其开发人员和用户社区驱动的。一些供应商在志愿者的基础上发展和资助他们的分销, Debian是一个众所周知的例子。其他人则像红帽一样与Fedora一样,保持其商业发行版的社区版本, Suse与Opensuse一样。
在许多城市和地区,被称为Linux用户组(LUG)的本地协会试图通过扩展免费软件来促进其首选分布。他们举行会议,并为新用户提供免费演示,培训,技术支持和操作系统安装。许多互联网社区还为Linux用户和开发人员提供支持。大多数发行版和免费软件 /开源项目都有IRC聊天室或新闻组。在线论坛是支持的另一种手段,其中著名的例子是linuxquestions.org和各种特定于分销的支持和社区论坛,例如Ubuntu ,Fedora和Gentoo 。 Linux发行主机邮件列表;通常会有一个特定的主题,例如给定列表的使用或开发。
有几个具有Linux焦点的技术网站。 Linux上的打印杂志经常捆绑覆盖磁盘,这些磁盘载有软件甚至完整的Linux发行版。
尽管Linux发行商通常不收取,但几家大型公司出售,支持并为系统组件和自由软件的组件开发做出贡献。对Linux内核在2017年的分析表明,在为工作付费的程序员制定的代码中,超过85%的代码占无偿开发人员的约8.2%,未分类为4.1%。提供贡献的一些主要公司包括英特尔,三星, Google , AMD , Oracle和Facebook 。许多公司,尤其是红帽,规范和SUSE ,都围绕Linux发行商开展了重要的业务。
在Linux内核上建立的分销的各种软件包在其上的免费软件许可证都可以明确适应并鼓励商业化;整个Linux分布与单个供应商之间的关系可能被视为共生。商业供应商的一种常见商业模式是为支持,尤其是对企业用户的支持。许多公司还提供其发行版的专业业务版本,该公司添加了专有的支持软件包和工具,以管理更高数量的安装或简化管理任务。
另一个业务模型是赠送软件以销售硬件。这曾经是计算机行业的规范,在7.6可免费复制(但不可修改)之前, CP/M , Apple DOS和Classic Mac OS的版本等操作系统。随着计算机硬件在整个1980年代的标准化,硬件制造商从这种策略中获利变得更加困难,因为该操作系统将在任何共享相同体系结构的制造商的计算机上运行。
Linux上的编程
大多数编程语言直接或通过基于第三方社区的端口支持Linux。 GNU工具链中发现了用于构建Linux应用程序和操作系统程序的原始开发工具,其中包括GNU编译器收集(GCC)和GNU构建系统。除其他外,GCC为ADA ,C, C ++ , GO和Fortran提供了编译器。许多编程语言具有跨平台参考实现,该实现支持Linux,例如PHP , Perl , Ruby , Python , Java , Go , Rust和Haskell 。 LLVM项目于2003年首次发布,为许多语言提供了另一种跨平台开源编译器。 Linux的专有编译器包括Intel C ++编译器, Sun Studio和IBM XL C/C ++编译器。基本形式可从QB64 , Purebasic , Yabasic , Glbasic , Glbasic, basic4Gl , XBASIC , WXBASIC ,WXBASIC, SDLBASIC和BASIC-256以及通过gambas ,FreeBasic,freebasic, b4x , basic for qt , qt,qt,phoenix basic ,phoenix, phoenix ,phoenix,phoenix,phoenix,phoenix,phoenix,phoenix, phoenix,phoenix, , Survicex , Chipmunk Basic , RapidQ和Xojo 。 Pascal是通过GNU Pascal , Free Pascal和Virtual Pascal实施的,以及使用FireMonKey (以前通过Borland Kylix )通过Lazarus , Pascalabc.net或Delphi实施。
Linux的一个类似于Unix的系统的共同功能包括针对脚本,文本处理以及系统配置和管理的传统特定用途的编程语言。 Linux发行版支持Shell脚本,尴尬, SED和MAKE 。许多程序还具有嵌入式编程语言,可以支持自己进行配置或编程。例如,在GREP和定位等程序中支持正则表达式,传统的Unix消息传输代理Sendmail包含其自己的图灵完整脚本系统,而高级文本编辑器GNU emacs则围绕着通用lisp解释器构建。
大多数分布还包括对PHP , Perl , Ruby , Python和其他动态语言的支持。虽然不是常见的,但Linux还支持C#和其他CLI语言(通过单声道), Vala和方案。 Guile计划充当针对GNU系统实用程序的扩展语言,试图通过一种优雅的,功能的高级脚本系统来快速,动态地扩展UNIX设计的常规小型,静态,编译的C程序;许多GNU程序都可以通过可选的Guile Bindings编译为此。许多Java虚拟机和开发套件在Linux上运行,包括原始的Sun Microsystems JVM( Hotspot )和IBM的J2SE RE,以及许多开放源代码项目,例如Kaffe和Jikes RVM ;还可以使用Kotlin , Scala , Groovy和其他JVM语言。
GNOME和KDE是受欢迎的桌面环境,并为开发应用程序提供了一个框架。这些项目分别基于GTK和QT小部件工具包,这些工具包也可以独立于较大的框架。两者都支持各种各样的语言。有许多可用的集成开发环境,包括Anjuta , Code :: Blocks , CodeLite , Eclipse , Geany , ActiveState Komodo , Kdevelop ,Lazarus, Lazarus , Monodevelop , Netbeans和Qt Creator ,而长期以来已有的编辑Vim , Nano和Emacs和Emacs则保留受欢迎的。
硬件支持
Linux内核是一种广泛移植的操作系统内核,可用于从手机到超级计算机的设备;它在高度多样的计算机架构上运行,包括基于ARM的Android智能手机和IBM Z大型机。专门的分布和内核叉以较少的主流体系结构存在;例如,麋鹿内核叉可以在Intel 8086或Intel 80286 16位微处理器上运行,而µClinux内核叉可以在没有内存管理单元的系统上运行。内核还运行在仅打算使用专有制造商创建的操作系统的架构上。
Linux长期维护标准化驱动程序,可以很好地支持旧硬件。有几个行业协会和硬件会议致力于维持和改善Linux领导下的多种硬件的支持,例如FreedomHec 。随着时间的流逝,对不同硬件的支持在Linux方面有所改善,从而导致任何现成的购买都具有兼容的“好机会”。
2014年,启动了一项新计划,以自动收集所有测试硬件配置的数据库。
用途
免费/开源软件的许多定量研究集中在包括市场份额和可靠性在内的主题上,许多研究专门研究Linux。 Linux市场正在增长,Linux操作系统市场规模预计到2027年将增长19.2%,达到156.4亿美元,而2019年为38.9亿美元。分析师项目的复合年增长率(CAGR)为13.7%。 2024年和2032年,到后一年的市场规模为349亿美元。分析师和支持者将Linux的相对成功归因于其安全性,可靠性,低成本以及免于供应商锁定的自由。
- 台式机和笔记本电脑
- 根据Web服务器统计信息(即,基于客户设备从访问到网站的数字),截至2022年5月,台式计算机上Linux的估计市场份额约为2.5%。相比之下, Microsoft Windows的市场份额约为75.5%,而MACOS的市场份额约为14.9%。
- Web服务器
- W3Cook发布了使用前1,000,000个Alexa域的统计数据,截至2015年5月估计,96.55%的Web服务器运行Linux,1.73%的运行Windows和1.72%的FreeBSD。
- W3Techs发布了使用前10,000,000个Alexa域和前1,000,000个Tranco域的统计数据,每月更新,截至2020年11月,估计Linux由39%的Web服务器使用,而Microsoft Windows使用了21.9%。 40.1%使用其他类型的UNIX。
- IDC的第二季度2007年报告表明,Linux当时占总服务器市场的12.7%。该估算值是基于各种公司出售的Linux服务器的数量,并且不包括单独购买的服务器硬件,即以后安装了Linux。
- 行动装置
- 基于Linux内核的Android已成为智能手机的主要操作系统。 2023年4月,使用StatCounter访问网站的68.61%来自Android。截至2013年,Android也是平板电脑的流行操作系统,截至2013年造成平板电脑销售额的60%以上。其余的1%归因于各种利基平台。
- 电影制作
- 多年来,Linux一直是电影业的首选平台。 Linux服务器上制作的第一部主要电影是1997年的泰坦尼克号。从那时起,包括Dreamworks动画, Pixar , Weta Digital和Industrial Light&Magic在内的主要工作室已迁移到Linux。根据Linux电影组,大型动画和视觉效果公司使用Linux的服务器和桌面的95%以上。
- 在政府中使用
- Linux分布也在各种地方和国家政府中广受欢迎。俄罗斯军方创建自己的Linux发行的消息也浮出水面,并作为幽灵项目实现了。喀拉拉邦印度州已承诺所有州高中在其计算机上运行Linux。中国仅利用Linux作为其Loongson Processor家族的操作系统来实现技术独立性。在西班牙,一些地区开发了自己的Linux分布,这些分布广泛用于教育和官方机构,例如Extremadura的Gnulinex和Andalusia的Guadalinex。法国和德国也采取了采用Linux的步骤。截至2002年开发的朝鲜红星OS基于Fedora Linux版本。
版权,商标和命名
Linux内核是根据GNU通用公共许可证(GPL)(版本2的。相同的条款。典型Linux分布的其他关键组成部分也主要在GPL下许可,但它们可能使用其他许可;许多库都使用GNU较少的通用公共许可证(LGPL),GPL的更宽松变体,X窗口系统的X.org实现使用MIT许可证。
Torvalds指出,Linux内核不会从GPL的2版转移到版本3。他特别不喜欢新许可证中的某些规定,这些规定禁止在数字权利管理中使用该软件。获得所有版权持有者的许可也将是不切实际的,这些版权持有人在数千名中。
2001年对Red Hat Linux 7.1的研究发现,此分布包含3000万个源代码线。使用建设性的成本模型,该研究估计该分布需要大约八千人的发展时间。根据这项研究,如果所有这些软件都是由常规专有方式开发的,那么在2022年,在美国开发的费用约为17.5亿美元。大多数源代码(71%)是用C编程语言编写的,但是使用了许多其他语言,包括C ++ , Lisp ,汇编语言,Perl,Python,Python, Fortran和各种Shell Scripting语言。在GPL下,所有代码的一半以上略多。 Linux内核本身是240万行代码,占总数的8%。
在后来的研究中,对Debian 4.0版进行了相同的分析(Etch,于2007年发布)。该分配包含近2.83亿个代码线,该研究估计,它需要大约7,000千年的男子年,而经常方式开发了98亿美元(以2022美元的价格)。
在美国, Linux这个名字是注册到Linus Torvalds的商标。最初,没有人注册它。但是,1994年8月15日,William R. Della Croce Jr.申请了商标Linux ,然后要求Linux发行商的特许权使用费。 1996年,Torvalds和一些受影响的组织起诉他将商标分配给Torvalds,并在1997年解决了该案。此后,商标的许可已由Linux Mark Institute (LMI)处理。托瓦尔德(Torvalds)表示,他对这个名字进行了商标,只是为了阻止其他人使用它。 LMI最初为使用Linux名称作为商标的一部分收取了名义上的转散费,但后来改变了这一点,而不是提供免费的,永久的全球冠状动物。
自由软件基金会(FSF)更喜欢GNU/Linux作为整体操作系统时的名称,因为它认为Linux发行版是FSF总裁Richard Stallman于1983年启动的GNU操作系统的变体。他们明确对Android OS的名称毫无疑问,这也是基于Linux内核的操作系统,因为GNU不是其中的一部分。
除了Stallman和FSF以外的少数公共人物和软件项目,尤其是Debian(直到1996年,FSF赞助)也使用GNU/Linux时,将操作系统称为整个操作系统。但是,大多数媒体和常见用法都将这种操作系统家族作为Linux ,就像许多大型Linux分布一样(例如Suse Linux和Red Hat Enterprise Linux )。相比之下,仅包含免费软件的Linux分布使用“ GNU/Linux”或简单的“ GNU”,例如Trisquel GNU/Linux , Parabola GNU/Linux-libre , Blag Linux和gnu和Gnewsense 。
截至2011年5月,Linux发行版Ubuntu(版本“ Natty”)的大约8%至13%是由GNU组件制成的(范围取决于GNOME是否被认为是GNU的一部分);同时,在包括其直接依赖性的情况下,Linux内核占6%,增加到9%。