《linux内核设计与实现》第一章

第一章Linux内核简介:

  1.3操作系统和内核简介

    操作系统:系统包含了操作系统和所有运行在它之上的应用程序。操作系统是指整个在系统中负责完成最基本功能和系统管理的那些部分。这些部分包括内核、设备驱动程序、启动应到程序、命令行shell或者其他种类的用户界面、基本的文件管理系统工具。

    内核:如果说用户界面是操作系统的外在表像,那么内核就是操作系统的内在核心。

    内核空间:系统态和保护起来的内存空间。

    内核的组成:

   1.中断服务程序(响应中断)

  2.调度程序(管理多个进程分享处理器的时间)

  3.内存管理程序(管理进程地址空间)

  4.系统服务程序(网络、进程间通信)

    应用进程如何与内核通信:

  通过系统调用的方式。应用进程调用库函数,再由函数库通过系统调用界面,让内核完成各种任务。(应用程序通过系统调用界面来陷入内核)

    内核负责管理系统的硬件设备:

  前提:硬件设备相遇系统通信,首先要发出一个异步的中断信号来打断处理器的执行(内核的执行)。

     中断服务由内核负责。但是需要注意,中断服务程序运行在与所有进程都无关的,专门的中断上下文中运行。

  1.4Linux内核和传统Unix内核的比较

    Unix内核的特点:不可分割的静态可执行库。(硬件系统提供页机制MMU管理内存。)

    Linux内核设计(主要讨论支持MMU的系统)

      单内核:

     最大的特点就是内核可以直接调用函数,所有的进程都处于内核态。它从整体上作为一个单独的大的进程来完成,同时也运行在一个单独的地址空间。

      微内核:

    功能被划分为多个独立的过程,每一个进程叫做一个服务器。有特权模式和用户模式两种,独立地运行在各自的地址空间。进程间采用IPC通信机制。

      Linux内核和Unix的显著区别:

     支持动态加载内核模块

    支持对称多处理机制SMP

    可以抢占

    不区分线程和一般进程

    提供具有设备类的面向对象的设备模型,热拔插事件,以及用户空间的设备文件系统

    摒弃了Unix一些拙劣的特性,体现了自由的精髓

  1.5Linux版本号

    例如2.6.26.1(第二位,即从版本号来判断内核是稳定还是开发状态。偶数则为稳定状态)

     2:主版本号

    6:副版本号(从版本号)

     26:修订版本号

    1:稳定版本号

总结:

    内核虽然是由进程组成,但是它区别于普通应用进程。内核(系统态,进入内核空间执行,运行于进程上下文中),应用进程(用户态,进入用户空间执行,运行于内核空间)。处理器任何时间都运行在如下三个状态中的一个:运行于用户空间,执行用户进程;运行于内核空间,处于进程上下文,内核进程执行;运行于内核空间,处于中断上下文,处理中断。如下图:

Linux的内核是一个单内核。(但是Linux汲取了微内核的精华,是模块化的,多线程的,内核本身可调度的操作系统。)

linux及安全《Linux内核设计与实现》第一章——20135227黄晓妍的更多相关文章

  1. linux及安全《Linux内核设计与实现》第四章——20135227黄晓妍

    第四章 进程调度 进程调度程序是一个内核子系统 分配有限的处理器时间和资源 最大限度利用时间的原则(只要有可执行的进程,那么总会有进程执行) 基本工作:从一组处于等待(阻塞)状态的可执行进程中选择一个 ...

  2. linux及安全《Linux内核设计与实现》第三章——20135227黄晓妍

    第三章 (由于linux不区分进程和线程,所以它们在linux中被称为task,也叫任务) 总结:本章主要包括进程以及线程的概念和定义,Linux内核如何管理每个进程,他们在内核中如何被列举,如何创建 ...

  3. linux及安全《Linux内核设计与实现》第二章——20135227黄晓妍

    第二章:从内核出发 2.1获取源代码 2.1.1使用git Git:内核开发者们用来管理Linux内核源代码的控制系统. 我们使用git来下载和管理Linux源代码. 2.1.2安装内核源代码(如果使 ...

  4. linux及安全期中总结——20135227黄晓妍

    Linux及安全期中总结 黄晓妍 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ...

  5. Linux内核设计与实现 第一章 第二章

    第一章 Linux内核简介 Unix特点: (1)     Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2)     在Unix中,所有的东西都被当作文件对待,通过一套相 ...

  6. linux及安全第三周总结——20135227黄晓妍

    总结部分: Linux内核源代码: Arch 支持不同cpu的源代码:主要关注x86 Init   内核启动的相关代码:主要关注main.c,整个Linux内核启动代码start_kernel函数 K ...

  7. linux内核设计与实现第一章

    1.1 unix的历史 Thompson实现unix 伯克利大学对其进一步开发推出了著名的BSD 其他各大厂商相继推出自己的unix 1.1.2 unix的特性 unix系统是一个强大,健壮,稳定的操 ...

  8. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  9. linux及安全第八周总结——20135227黄晓妍

    实验部分 实验环境搭建 -rm menu -rf git clone https://github.com/megnning/menu.git cd menu make rootfs qemu -ke ...

随机推荐

  1. django restframwork教程之Request和Response

    从这一篇文章开始,我们会覆盖整个REST framwork框架的核心,接下来让我们介绍一些基础的构建块 Request 对象 REST framework 引入了一个扩展HttpRequest的请求对 ...

  2. poj_3352 连通图的桥

    题目大意 给定N个点,他们之间用一些双向边连通,使得这N个点两两相互可达.但是其中某些双向边为桥,这样若断开这些桥,则整个图就无法做到点之间两两可达.现在可以添加若干条双向边,使得断开图中的任意一条边 ...

  3. 【微信开发】PC端 微信扫码支付成功之后自动跳转

    场景: PC端   微信扫码支付 结果: 支付成功 自动跳转 实现思路: 支付二维码页面,写ajax请求支付状态,请求到结果,无论成功还是失败,都跳转到相应的结果页面 具体实现方法: html部分: ...

  4. LeetCode——Implement Queue using Stacks

    Description: Implement the following operations of a queue using stacks. push(x) -- Push element x t ...

  5. 关于Android图片资源瘦身的奇思妙想

    版权声明:本文由况鹰原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/77 来源:腾云阁 https://www.qcloud ...

  6. javascript关于链接的一些用法

    (1)javascript:openURL() http://www.kpdown.com/search?name=Ben Nadel 此URL后边有一个name参数,只不过参数的值竟然带了空格,这样 ...

  7. Python 导入与注册

    背景 最近一直学习写一个POC扫描框架,但是不知道如何下手,正巧因为一些需要有朋友在研究POCSuite的实现原理,顺面蹭一些知识点,补一补Python基础的不足,为以后编写POC框架打地基. 导入 ...

  8. npm安装出错的时候,如何使用国内的镜像!--解决办法

    在前端开发领域,Node已经很普遍了,使用Node就会使用到一些包.所以常用的 npm 就会经常使用得到,但是在使用 npm 安装一些包的过程中,会发现安装的速度会很慢,而且很多时候直接安装不了. 百 ...

  9. jQuery --- 利用a标签的download属性下载文件!

    最近遇到一个项目,需要有点击下载文件的功能. 由于文件格式是多种的,对于 rar / zip / rtf / doc / xlsx / jpg等. 点击下载有的是直接跳转到后进行下载,但有的是打开进行 ...

  10. 微信小程序 --- 组件

    view组件:小程序使用最多的组件.可以理解为 div: Text组件:用于展示文字.可以理解为 p span 标签.(除了Text组件以外的其他组件都无法被长按选中) Text组件无法解析HTML, ...