第一章 Linux內核簡介
1. Linux是類Unix系統,但他不是Unix。
儘管Linux借鑑了Unix的許多設計並且實現了Unix的API(由Posix標準和其他Single Unix Specification定義的),但Linux沒有像其他Unix變種那樣直接使用Unix的源代碼。
2. Linux系統的基礎是內核、C庫、工具集和系統的基本工具,如登錄程序和Shell。
3. 操作系統是指在整個系統中負責完成最基本功能和系統管理的那些部分。這些部分應該包括內核、設備驅動程序、啓動引導程序、命令行Shell或者其他種類的用戶界面、基本的文件管理工具和系統工具。
4. 內核空間和用戶空間
對於提供保護機制的現代系統來說,內核獨立於普通應用程序,它一般處於系統態,擁有受保護的內存空間和訪問硬件設備的所有權限。這種系統態和被保護起來的內存空間,統稱爲內核空間。
與此相對,應用程序在用戶空間執行。它們只能看到允許它們使用的部分系統資源,並且只能使用某些特定的系統功能,不能直接訪問硬件,也不能訪問內核劃給別人的內存範圍,還有其他的一些使用限制。
內核運行的時候,系統以內核態進入內核空間執行。當執行普通用戶程序時,系統以用戶態進入用戶空間執行。
5. 在系統中運行的應用程序通過系統調用來與內核通信。
當一個應用程序執行一條系統調用,就說內核正在代其執行。進一步,這時,應用程序被稱爲通過系統調用在內核空間執行,而內核被稱爲運行與進程上下文中。

6. 在Linux中,中斷服務程序不在進程上下文執行,而在一個與所有進程都無關的、專門的中斷上下文中運行。原因是:爲了保證中斷服務程序能夠在第一時間響應和處理中斷請求,然後快速地退出。
7. 每個處理器在任何指定的時間點上的活動:
運行於用戶空間,執行用戶進程
運行於內核空間,執行進程上下文,代表某個特定進程執行
運行於內核空間,處於中斷上下文,與任何進程無關,處理某個特定的終端
8. 當CPU空閒時,內核就運行一個空進程,處於進程殺下文,但運行於內核空間。
關於IDLE進程的知識,參考網摘:分析linux内核的idle的知识
9. Linux是一個單內核,即Linux內核運行在單獨的內核地址空間上。
不過,Linux汲取了微內核的精華,如模塊化設計、搶佔式內核、支持內核線程以及動態裝載內核模塊的能力。此外,Linux還避其微內核設計上性能損失的缺陷,讓所有的事情都運行在內核態,直接調用函數,無需消息傳遞。
10. Linux內核與傳統的Unix系統之間的差異:
Linux支持動態加載內核模塊
Linux支持對稱多處理(SMP)機制
Linux內核可以搶佔(preemptive)。Linux內核具有允許在內核運行的任務優先執行的能力。
Linux內核不區分線程和其他的一般進程。對於Linux內核來說,所有的進程都一樣——只不過是其中的一些共享資源而已。
Linux提供具有設備類的面向對象的設備模型、熱插拔事件,以及用戶空間的設備文件系統(sysfs)。
11. Linux內核版本

其中,從版本號如果是偶數,那麼該內核就是穩定版,否則就是開發版。
完
第一章 Linux內核簡介的更多相关文章
- 【转】Linux內核驅動之GPIO子系統(一)GPIO的使用 _蝸牛
原文网址:http://tc.chinawin.net/it/os/article-2512b.html 一 概述 Linux內核中gpio是最簡單,最常用的資源(和interrupt ,dma,ti ...
- Linux內核中常用的一些延時方法
Linux內核中常用的一些延時方法 這些方法在以下路徑下定義:kernel/include/linux/delay.h #ifndef _LINUX_DELAY_H #define _LINUX_DE ...
- CentOS 7.4 初次手记:第一章 Linux守护进程(daemon)
第一节 init & sysvinit 6 I sysvinit 运行顺序... 6 II Sysvinit和系统关闭... 7 III Sysvinit 的小结... 7 IV 运行级别.. ...
- Linux内核分析——第一章 Linux内核简介
第一章 Linux内核简介 一.Unix的历史 1.Unix系统成为一个强大.健壮和稳定的操作系统的根本原因: (1)简洁 (2)在Unix中,很多东西都被当做文件对待.这种抽象使对数据和对设备的 ...
- 核心系统命令实战 第一章Linux命令行简介
第一章Linux命令行简介 1.1 Linux命令行概述 1.1.1 Linux 命令行的开启和退出 开启:登陆账号密码进入系统 退出:exit/logout 快捷键:Ctrl+d 1.1.2 Li ...
- CVE-2016-8655,af_packet Linux 內核通殺提權漏洞淺析
簡單寫一下思路 這個東西需要namespace方面的支援, 首先open socket , 一連串路徑(packet_set_ring()->init_prb_bdqc()->prb_se ...
- linux內核輸出soft lockup
創建的內核線程長期佔用cpu,一直內核認為線程soft lockup,如無法獲取自旋鎖等:因此線程可適度調用schdule(),以進行進程的調度:因為kwatchdog的執行級別低,一直得不到執行 [ ...
- 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机
本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...
- 第一章 Linux系统入门
设定目标,寻求方法,勤奋努力,坚持不懈. ------你们知道了,而我们做到了.------ 世界上第一台计算机:ENIAC(埃尼亚克).1946-2 宾夕法尼亚大学. 约翰·冯·诺依曼体系 电脑的组 ...
随机推荐
- 简单说说.Net中的弱引用
弱引用是什么? 要搞清楚什么是弱引用,我们需要先知道强引用是什么.强引用并不是什么深奥的概念,其实我们平时所使用的.Net引用就是强引用.例如: Cat kitty = new Cat(); 变量ki ...
- [转]Android ListView 与 RecyclerView 对比浅析—缓存机制
从源码角度剖析ListView 与 RecyclerView 缓存机制的不同 https://zhuanlan.zhihu.com/p/23339185 原文地址:http://dev.qq.com/ ...
- 一眼看懂深浅拷贝(clone)-C#
这是使用的是序列化的方式实现深拷贝 [Serializable] class Person:ICloneable { /// <summary> /// 字符串在clone 中类似于值类型 ...
- 快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,即USE方法
命令:uptime说明:查看机器分别在1分钟.5分钟.15分钟的平均负载情况,显示的数字表示等待cpu资源的进程和阻塞在不可中断io进程的数量,如果1分钟的平均负载很高,而15分钟的平均负载很低,说明 ...
- bat 延时删除指定文件夹中的文件经验分享
1.bat延时 xp程序中通过ping 127.0.0.1 -n 20 来实现延时操作,ping本地地址20行. win7中通过timeout 20 来实现延时20秒. 2.删除指定文件 del /q ...
- angularJs 指令的理解
指令: 可以把指令理解成为特定的DOM 上运行的函数,指令扩展了这个元素的功能: 例如:ng-click--在DOM元素上绑定了一个click事件的监听,并在监听到事件时运行angular表达式 自定 ...
- Spring之注入的几种方式
普通注入 在配置文件里 <!-- 构造注入 --> <bean id="user1" class="entity.User"> < ...
- 详解Maple中的基础工具栏
鉴于Maple 强大的符号计算功能,越来越多的人选择使用Maple 2015计算复杂的数学问题,初学者刚开始时需要对Maple有所熟悉才能很好地进行运用,下面就从基础开始,介绍Maple工作环境. M ...
- 采访Philipp Crocoll:安卓平台上整合Java和C#
在这个采访中,我们跟开源开发者Philipp Crocoll讨论了关于Keepass2Android的相关话题.Keepass2Android不仅具有强大的密码存储的功能,还是在一个单独的安卓应用同时 ...
- .Net开发笔记(二十)创建一个需要授权的第三方组件
在使用需要授权的软件时,注册付费的目标是软件的使用者,我们开发人员平时用到的一些第三方组件也是需要授权付费的,也就是说,付费者是开发人员,并不是系统(使用了该第三方组件)的最终使用者. 以上两者的区别 ...