“Linux”不等同于Linux内核:构建Linux系统的8个软件包

标签: Linux | 发表时间:2014-01-11 05:07 | 作者:小道空空
分享到:
出处:http://www.geekfan.net

linux-tux-penguin

Linux发行版并不仅仅是Linux内核。所有的Linux发行版都包含了除内核之外的一些必要的软件包,比如Grub引导程序、Bash shell、GNU shell工具软件、守护进程、X.org图形服务器和桌面环境等等。
所有这些不同的程序均由相互独立的开发小组开发。这些程序被Linux发行版集成到一起从而形成一套完整的“Linux”操作系统。这和Windows操作系统不同,因为整个Windows系统全部由微软公司开发。

引导程序 (Bootloader)
当你打开电脑的时候,电脑的 BIOS或者UEFI固件会从其引导设备中加载软件。任何一个操作系统启动时首先加载的都是引导程序。在Linux操作系统中,通常使用的引导程序是Grub。
如果你在一台电脑上安装了多个操作系统,Grub会提供一个菜单供你选择。例如,如果你装了双系统(Linux和Windows),你可以从Linux和Window中选择任何一项来启动。
如果你的电脑只安装了Linux,或许Grub可以瞬间启动它,但是它提供的选择菜单还在那里。Grub负责启动Linux系统、提供命令行启动选项和允许以其它方式启动Linux以排除故障。没有引导程序的Linux操作系统是无法启动的。
Grub引导程序

Linux内核
确切地讲,Grub引导的是Linux内核。它是操作系统的一部分,并且通常被称为“Linux”。内核是整个Linux系统的核心。它管理着CPU、内存和输入/输出设备(例如键盘、鼠标和显示器)。由于内核可以直接和硬件交互,很多硬件驱动程序都成为Linux内核的一部分并且在内核中运行。
其它所有的软件都运行在内核之上。内核是最底层的软件,它提供操作硬件的接口。它在硬件之上提供一个抽象层来处理硬件的各种事务,从而把系统的其它部分从硬件中解放出来。Windows操作系统使用的内核是Windows NT,Linux操作系统使用的是Linux内核。

守护进程 (Daemons)
守护进程是不可缺少的后台进程。作为启动进程的一部分,它在Linux内核之后和登录界面显示之前启动。Windows把这些进程成为“服务”,而类Unix系统则称它们为“守护进程”。
例如,管理任务调度的crond就是一个守护进程——最后的字母d即代表守护进程。广泛使用的管理系统日志的syslogd也是守护进程。服务器进程,如sshd,也是以守护进程的形式在后台运行。这种做法可以保证它们一直处在运行状态,从而持续监听远程连接。
守护进程本质上只是在后台运行的进程,但它们是让人很少留意的系统级进程。

Shell
大多数Linux系统的默认shell是Bash shell。Shell提供了命令处理接口,从而可以在命令行窗口中输入命令来控制电脑。Shell也可以以 Shell脚本的方式运行,这种情况下一组Shell命令被写在脚本中并按顺序依次执行。
即使只使用图形桌面,shell也一直在后台运行。当你打开终端窗口的时候就会看到shell提示符。
Linux终端-Bash Shell

Shell工具软件
Shell提供了一些最基本的内嵌命令。但大多数用户经常用到的shell命令并没有被内嵌到Shell中。例如,GNU核心工具软件包提供了很多和cp(复制文件)、ls(列出当前目录下的文件)和rm(删除文件)一样重要的命令。
如果没有这些重要的命令,Linux的功能就会受到极大的限制。事实上,Bash shell本身就是GNU项目的一部分。这就是为什么大家一直在争议 应该把Linux叫做“Linux”还是应该叫它“GNU/Linux”。“Linux”的批评者认为Linux系统中包含了大量的通用软件,但“Linux”没有明确指出它们的存在;而“GNU/Linux”的批评者则认为Linux系统中也包含了很多“GNU/Linux”无法代表的重要软件。
并不是所有的shell工具软件和命令行程序都包含在GNU项目中。一些命令和终端程序都有自己特定的项目。

X.org图形服务器
Linux图形桌面不是Linux内核的一部分。它是由一个名叫“X服务器”的工具包提供的,它实现了很早就有的“X视窗系统”。
目前最受欢迎的X服务器——或叫做图形服务器——是X.org。你看到的图形登录窗口和桌面正是X.org体现它的魔力所在。整个图形系统是由X.org控制的,它提供了与显卡、显示器、鼠标和其它一些设备的接口。
X.org只提供了图形系统而不是整个桌面环境。桌面环境和工具包可以构建在X.org提供的图形系统之上。

桌面环境
你真正使用的Linux桌面是一个 桌面环境。例如,Ubuntu采用Utility桌面环境,Fedora采用GNOME,Kubuntu采用KDE,Mint一般使用Cinnamon或MATE。 这些桌面环境提供了一些你看得见的东西——桌面背景、面板、窗口的标题栏和边框。
桌面环境通常包含一些自己开发的工具软件来形成一个整体。例如,GNOME和Unity包含了Nautilus文件管理器;而KDE则包含了Dolphin文件管理器。
Unity桌面环境

桌面程序
并不是每个桌面程序都是桌面环境的一部分。例如,Firefox和Chrome是与桌面环境无关的,它们通常可以在任何桌面环境中运行。同样,OpenOffice套件也与具体桌面环境无关。
你可以在任何桌面环境中运行任意Linux桌面程序。但是为某个特定桌面环境设计的程序在其它桌面环境中运行时会显得不协调或运行速度较慢。例如,如果你在KDE中运行GNOME下的Nautilus文件管理器,它会显得不协调并要求你安装一系列的GNOME库,而且启动时它或许会后在台运行GNOME桌面进程。这种情况下它可以运行起来并且可以被使用的。

Linux发行版执行最后的步骤:把上述的所有软件集成到一起使它们很好的工作,并添加其它一些必要的软件。例如,Linux发行版通常都包含自己特定的系统安装软件。通过这个软件,你可以安装Linux系统和软件包管理器(用来安装其它软件或更新现有的软件)。

“Linux”不等同于Linux内核:构建Linux系统的8个软件包,首发于 极客范 - GeekFan.net

相关 [linux 不等 linux] 推荐:

“Linux”不等同于Linux内核:构建Linux系统的8个软件包

- - 极客范 - GeekFan.net
Linux发行版并不仅仅是Linux内核. 所有的Linux发行版都包含了除内核之外的一些必要的软件包,比如Grub引导程序、Bash shell、GNU shell工具软件、守护进程、X.org图形服务器和桌面环境等等. 所有这些不同的程序均由相互独立的开发小组开发. 这些程序被Linux发行版集成到一起从而形成一套完整的“Linux”操作系统.

Javascript 里跑Linux

- rockmaple - Shellex's Blog
牛逼到暴的大拿 Fabrice Bellard,用Javascript实现了一个x86 PC 模拟器,然后成功在这个模拟器里面跑Linux(请用Firefox 4 / Google Chrome 11打开,Chome 12有BUG). 关于这个东西… 伊说 “I did it for fun“,大大啊大大啊….

linux makefile编写

- hl - C++博客-首页原创精华区
在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则. target也就是一个目标文件,可以是Object File,也可以是执行文件. prerequisites就是,要生成那个target所需要的文件或是目标. command也就是make需要执行的命令. 这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在 command中.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

Linux下的VDSO

- 圣斌 - Adam's
VDSO(Virtual Dynamically-linked Shared Object)是个很有意思的东西, 它将内核态的调用映射到用户态的地址空间中, 使得调用开销更小, 路径更好.. 开销更小比较容易理解, 那么路径更好指的是什么呢. 拿x86下的系统调用举例, 传统的int 0×80有点慢, Intel和AMD分别实现了sysenter, sysexit和syscall, sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题.

Linux wget命令

- - CSDN博客推荐文章
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径. 例如: # wget  http://www.linuxsense.org/xxxx/xxx.tar.gz. 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载.

Linux的架构

- - 博客园_首页
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. 我们以下图为基础,说明Linux的架构(architecture). (该图参考《 Advanced Programming in Unix Environment》). 最内层是我们的硬件,最外层是我们常用的各种应用,比如说使用firefox浏览器,打开evolution查看邮件,运行一个计算流体模型等等.

linux 小技巧

- - DBA Blog
2:如何限制用户的最小密码长度. 修改/etc/login.defs里面的PASS_MIN_LEN的值. 比如限制用户最小密码长度是8:. 3:如何使新用户首次登陆后强制修改密码. 4:更改Linux启动时用图形界面还是字符界面. 将id:5:initdefault: 其中5表示默认图形界面. 改id:3: initdefault: 3表示字符界面.

Linux iostat命令

- - CSDN博客系统运维推荐文章
iostat用于输出CPU和磁盘I/O相关的统计信息. . iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [. iostat各个参数说明:. -c 仅显示CPU统计信息.与-d选项互斥. -d 仅显示磁盘统计信息.与-c选项互斥.

linux命令locate

- - 操作系统 - ITeye博客
    locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息. Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.