Linux 内核

Linux 内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。通过本专题,我们可以学习 Linux 的分层架构、内核配置和编译、内核性能调试和 Linux 2.6 中的许多提升功能。

Linux 内核组成

Linux 内核的主要组件有:系统调用接口、进程管理、内存管理、虚拟文件系统、网络堆栈、设备驱动程序、硬件架构的相关代码。


图 1. Linux 内核的体系结构图
Linux 内核的体系结构图


回页首

Linux 剖析系列

M. Tim Jones 推出了一系列文章来剖析 Linux 内核各个方面,相信会为读者展现一个非常清晰的 Linux 轮廓。

  • Linux 文件系统剖析
  • Linux 网络栈剖析
  • Linux 内核剖析
  • Linux slab 分配器剖析
  • Linux 同步方法剖析


回页首



内核配置及编译

随 着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后,都将面临着同样的问题,即如何将源代码融入到 Linux 内核中,增加相应的 Linux 配置选项,并最终被编译进 Linux 内核。

  • 教程:编译 Linux 内核
  • Linux 内核配置系统浅析
  • 教程:LPI 证书 102 考试准备,第 2 部分:配置及编译内核


回页首



性能调试

作为最流行的开源操作系统,如果 Linux 要进入企业环境,以及能够作为商业性应用进入 SMP 市场,与商业 UNIX 系统相比,它的 SMP 可伸缩性、磁盘和网络 I/O 性能、调度程序和虚拟内存管理器必须得到改善。

  • 改善 Linux 内核性能和可伸缩性 -- 为 Linux 在企业环境中的应用寻找出路
  • 超线程加快了 Linux 的速度 -- 单处理器上的多处理器性能
  • 改善 Linux 内核性能和可伸缩性 -- 为 Linux 在企业环境中的应用寻找出路
  • 掌握 Linux 调试技术 -- 在 Linux 上找出并解决程序错误的主要方法
  • 实时管理 Linux -- 使用 /proc 文件系统来控制系统
  • LINUX 系统性能调谐
  • Linux 内核调试器内幕 -- KDB 入门指南
  • 利用异常表处理 Linux 内核态缺页异常 -- 一种提高系统稳定性的方法
  • 测试 Linux 的可靠性 -- Linux Technology Center 评估 Linux 的长期可靠性
  • 用 DSF 模拟设备 -- Linux 内核 Device Simulator Framework 入门


回页首



Linux 内核开发与测试
  • 内核比较:从 2.4 到 2.6 内核开发中的改进 -- 改变越多,就越步入正轨
  • 用 DSF 模拟设备 -- Linux 内核 Device Simulator Framework 入门


回页首



内核 2.4 与 2.6 比较

相 对 Linux 2.4,无论是对于企业服务器还是对于嵌入式系统,Linux 2.6 都是一个巨大的进步。对高端的机器来说,新特性针对的是性能改进、可扩展性、吞吐率,以及对 SMP 机器 NUMA 的支持。对于嵌入式领域,添加了新的体系结构和处理器类型——包括对那些没有硬件控制的内存管理方案的 MMU-less 系统的支持。并且,和往常一样,为了满足桌面用户群的需要,添加了一整套新的音频和多媒体驱动程序。

  • 内核比较:2.4 和 2.6 上的 Web 服务 -- 新特性使 Web 性能更快,更可靠
  • 内核比较:从 2.4 到 2.6 内核开发中的改进 -- 改变越多,就越步入正轨
  • 内核比较:2.6 内核中网络的改进 -- 提供更好的安全性、电话支持和隐私保护
  • 内核比较:2.6 内核中改进了内存管理 -- 从大内存页到反向映射:更高的稳定性和更快的速度


回页首



内核其他文章

更多 Linux 内核相关文章/教程...

  • 走向 Linux 2.6
  • Linux 2.6 内核的精彩世界
  • 采访:安腾传道者 -- David Mosberger 仔细考虑 Linux 在 IA-64 上的未来
  • IA-64 Linux存储管理 -- 重点描述了IA-64 Linux存储管理,包括IA-64 Linux灵活的地址空间划分、页表、TLB等机制。
  • Linux 2.4 调度系统分析
  • Linux 2.6 调度系统分析 -- 详细分析了 Linux 2.6 调度系统的原理和实现细节。
  • Linux 2.6 对新型 CPU 快速系统调用的支持 -- 分析了在 Linux 2.6 中引入的对 Intel CPU 快速系统调用指令 SYSENTER/SYSEXIT 支持的实现。

转载于:https://www.cnblogs.com/licheng/archive/2008/07/05/1236744.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给asterisk写app供CLI调用

环境:CentOS6.2 Asterisk 1.8.7.1 一、添加源文件 复制app_verbose.c为app_testApp.c 复制app_verbose.exports为app_testApp.exports 主要是修改一些标识,编译不会出错就行,这里列出我进行的主要修改。 1、添加头文件 #include "aster…

前端,校招,面淘宝,指南

大家好,我是若川。持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列虽然是…

qq空间网页设计_网页设计中负空间的有效利用

qq空间网页设计Written by Alan Smith由艾伦史密斯 ( Alan Smith)撰写 Negative space is a key design element that you may come across in the fields of art, architecture, interior design, landscaping and web design. Rather than serving as awkward, empty areas …

自定义异常抛法

public List<LogRec> readLogs() throws ReadDataException { try { return returnLogRec(logFileName); } catch(Exception e) { throw new ReadDataException(e); } } 转载于:https://www.cnblogs.com/zengmiaogen/archive/2012/04/15/2450438.html

SQL SERVER服务停止和启动命令行

停止服务: net stop mssqlserver 启动服务: net start mssqlserver 转载于:https://www.cnblogs.com/davidgu/archive/2010/01/06/1640466.html

Git 和 GitHub 教程——版本控制入门

大家好&#xff0c;我是若川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列Learn…

matlab中的:的优先级_内容早期设计:内容优先

matlab中的:的优先级By Simone Ehrlich, Content Strategy Manager由 西蒙埃利希 &#xff0c;内容策略经理 Words are cheap. Cheaper than wires; cheaper than mocks. That doesn’t mean words aren’t important, just less expensive to produce as a design asset. So …

Nunit2.5.10快速上手

1、下载Nunit&#xff1a;http://www.nunit.org/index.php?pdownload&#xff0c;下载MSI格式的安装包&#xff1b; 2、安装Nunit&#xff0c;根据提示安装即可&#xff0c;没有什么需要配置的&#xff0c;直接下一步就可以了。 3、新建类库项目NUnitQuickStart&#xff0c;在…

我真的哭了,哭过后呢(-)

这些是山区的孩子们&#xff01; 这是他们的教室。这个也算是&#xff01;如此的师资力量自己解决吃饭问题冬天到了&#xff0c;一起烤烤火与泥土污水一起还好&#xff0c;最大的数字只是10老师抱着孩子来给我们上课了不知道山那边会是什么呢&#xff1f;又一双充满了渴望的大眼…

脑裂问题解决方案_从解决方案到问题

脑裂问题解决方案Once upon a time a couple of years ago, one of my mentors (and favourite people in the world) repeatedly drilled the idea above into my brain. Her advice for Product people was to “fall in love with the problem, not the solution”. At the …

Vue.js 官方团队成员霍春阳新作,深入解析 Vue.js 设计细节【文末送书】

霍春阳&#xff08;Hcy&#xff09;&#xff0c;Vue.js 官方团队成员。专注于 Web 研发领域&#xff0c;是 Vue.js 3 的核心贡献者之一&#xff0c;Vue.js 文档生成工具 Vuese 的作者&#xff0c;技术社区活跃者&#xff0c;曾撰写大量颇受好评的技术博客。经过一年的准备&…

分享memcache和memcached安装过程(转)

Memcache是什么&#xff1f;源代码地址&#xff1a;http://code.google.com/p/memcached/downloads/list Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序&#xff0c;减轻数据库负载。 它可以应对任意多个连接&#xff0c;使用非阻…

LINQ之路 5:LINQ查询表达式

书写LINQ查询时又两种语法可供选择&#xff1a;方法语法&#xff08;Fluent Syntax&#xff09;和查询表达式&#xff08;Query Expression&#xff09;。 LINQ方法语法的本质是通过扩展方法和Lambda表达式来创建查询。C# 3.0对于LINQ表达式还引入了声明式的查询表达式&#xf…

调查谋杀案以换取Obra Dinn

回顾性 (RETROSPECTIVE) I am not sure if this is intentional, but Lucas Pope has a knack for turning the mundane into something special. This was evident in his release of Papers Please. In that game, you’re a border patrolman trying to provide for your fa…

9年前的大一,我们这样为女生过37女生节【祝节日快乐】

这是一篇水文~没啥目的&#xff0c;若说要有&#xff0c;就是希望大家参加源码共读学起来。公众号后台显示所有读者朋友中大约有23%的女生。前端工程师中女生应该占比相对多些。祝关注我公众号的女生3.7女生节快乐&#xff0c;大部分公司明天应该都有半天假期。可以留言大学时你…

Jquery ajax 访问调用带参数的服务方法!

页面脚本中的写法: $.ajax({url: "http://localhost:3510/WebSite/WebService/ExceptionRecoder.asmx/SetExceptionInfo",contentType: "application/json; charsetutf-8", type: "POST", dataType: "js…

requests模块发送带headers的Get请求和带参数的请求

1.在PyCharm开发工具中新建try_params.py文件&#xff1b; 2.try_params.py文件中编写代码&#xff1a; import requests#设置请求Headers头部header {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}#请求输入参数p…

面试官问:跨域请求如何携带cookie?

大家好&#xff0c;我是若‍川。持续组织了6个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列本文…

Method not found: '!!0[] System.Array.Empty()'.

一开始不知道啥情况&#xff0c;原来是自己把.net 框架改成4.6.1了&#xff0c;客户机是4.0 so.... 把项目改低点&#xff0c;就ok了。转载于:https://www.cnblogs.com/ZaraNet/p/11100207.html

记录点滴8

第8~9周 4月7日~4月22日 第八周的时候实在太多东西要做了&#xff0c;我把写周记这件事给忘了&#xff0c;其实也没太大关系&#xff0c;写跟不写之间也没有太大的鸿沟&#xff0c;只是写了之后&#xff0c;会让我的记忆更加清晰&#xff0c;让自己明白&#xff0c;最近自己做了…