什么是linux kernel?有什么作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是linux kernel?有什么作用相关的知识,希望对你有一定的参考价值。

Linux内核(英语:Linux kernel)是一种开源的类Unix操作系统宏内核。

工作于平板电脑、智能手机及智能手表的android操作系统同样通过Linux内核提供的服务完成自身功能。

一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。

完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

整个Linux操作系统家族基于该内核部署在传统计算机平台(如个人计算机和服务器,以Linux发行版的形式)和各种嵌入式平台,如路由器、无线接入点、专用小交换机、机顶盒、FTA接收器、智能电视、数字视频录像机、网络附加存储(NAS)等。

工作于平板电脑、智能手机及智能手表的Android操作系统同样通过Linux内核提供的服务完成自身功能。尽管于桌面电脑的占用率较低,基于Linux的操作系统统治了几乎从移动设备到主机的其他全部领域。截至2017年11月,世界前500台最强的超级计算机全部使用Linux。

扩展资料:

编程语言

Linux是用C语言中的GCC版(这种C语言有对标准C进行扩展)写的,还有几个用汇编语言(用的是GCC的"AT&T风格")写的目标架构短段。因为要支持扩展的C语言,GCC在很长的时间里是唯一一个能正确编译Linux的编译器。

有许多其他的语言用在一些方面上,主要集中在内核构建过程中(这里指从源代码创建可引导镜像)。包括Perl、Python和多种脚本语言。有一些驱动可能是用C++、Fortran或其他语言写的,但是这样是强烈不建议的。

编译器兼容性

GCC是Linux内核源代码的缺省编译器。在2004年,Intel主张通过修改内核,以便Intel C++编译器能正确编译内核。在2009年,有通过修改内核2.6.22版而成功编译的报告(并带来平均8-9%性能增长)。

自从2010年,已经开始进行使用Clang建造Linux内核的努力,Clang是一个可作为替代的C语言编译器;截止2014年4月12日,官方内核几乎可以完全用Clang编译。致力于这个目标的计划叫做“LLVMLinux”,得名于Clang所基于的LLVM编译器下部构造。

LLVMLinux不意图复制Linux内核或LLVM,因此它是由最终提交给上游计划的补丁构成的一个元计划。使Linux内核可以用Clang编译最大的好处是比GCC有更快的编译速度,内核开发者可以得益于由此而来的更快的工作流程

参考技术A

linux kernel一般指Linux内核,它是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统内核。

作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。

Linux内核的主要模块分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

扩展资料

主要特性

1、完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

2、完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

3、多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

4、支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。

参考技术B linux kernel 是linux内核的意思 主要起到完成IO驱动设备管理,TCP/IP,以及任务调度本回答被提问者采纳 参考技术C linux系统的内核,相当于你的大脑

Oprofile中的基本疑问

【中文标题】Oprofile中的基本疑问【英文标题】:Basic doubt in Oprofile 【发布时间】:2010-07-04 05:21:04 【问题描述】:

我正在尝试使用 oprofile 分析我的软件(在 Linux 中)。我的软件由用户空间和内核模块组成。首先我的疑问是 --separate=kernel 选项有什么作用?没有该选项运行时会有什么区别?我确实试图看到它,但找不到任何区别。可以发个例子吗?

如果没有 --seperate=kernel 选项,我不能分析内核模块吗?

谢谢, 巴拉

【问题讨论】:

【参考方案1】:

在 oprofile 中与选项 --seperate=kernel 一起使用时,它将每个应用程序的内核和内核模块分开。 --seperate='library' 为每个应用程序分离动态链接对象的样本。

内核,动态链接对象并不特定于我们想要单独分析的应用程序。但与此同时,我们的应用程序在其中花费了大量时间。 所以 --seperate 允许从我们感兴趣的应用程序的角度获取样本。它还可以根据单个线程给出样本。

可以通过向 opcontrol 提供 --vmlinux 选项来分析内核。 例如:- opcontrol --vmlinux=/boot/vmlinux-2.6.27.23-0.1-preempt --seperate 是一个附加选项,允许我们以不同的分辨率查看样本。

【讨论】:

以上是关于什么是linux kernel?有什么作用的主要内容,如果未能解决你的问题,请参考以下文章

系统篇: Linux 下 kernel 的打印等级

linux kernel module

学习linux源码

Linux高手请进,关于编译hello模块的问题

[小技巧]Linux的一些信息获取

kvm的编译安装