《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. Mybaits中的update

    <update id="update" parameterType="Currency"> UPDATE YZ_SECURITIES_CURRENC ...

  2. [分享]方便的 windbg 命令 - !list

    Windows 内部的各种结构通常都会由双向链表串起来,用 !list 命令查看这些结构非常方便. 比如查看系统中的所有进程: lkd> !list -t nt!_LIST_ENTRY.Flin ...

  3. Android MemInfo 各项的意义(转)

    http://gdgzzch.blog.163.com/blog/static/37640452201371483147573/ http://stackoverflow.com/questions/ ...

  4. 【BZOJ4524】[Cqoi2016]伪光滑数 堆(模拟搜索)

    [BZOJ4524][Cqoi2016]伪光滑数 Description 若一个大于1的整数M的质因数分解有k项,其最大的质因子为Ak,并且满足Ak^K<=N,Ak<128,我们就称整数M ...

  5. 几行小代码,将Testlink的xml用例导入至excel

    最近在使用Testlink时,发现导入的用例是xml格式,且没有合适的工具转成excel格式,xml使用excel打开显示的东西也太多,网上也有相关工具转成csv格式的,结果也不合人意. 那求人不如尔 ...

  6. 170712、springboot编程之集成shiro

    这篇文章我们来学习如何使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在Java领域一般有Spring Security ...

  7. 徐州网络赛J-Maze Designer【最小生成树】【LCA】

    After the long vacation, the maze designer master has to do his job. A tour company gives him a map ...

  8. 第二次去苹果店维修MacBook

    今天上午,在使用外接鼠标的情况下,屏幕上鼠标指针乱窜.乱点.不受控制的故障再次出现,这次拍下了视频. 再次去苹果网站预约Genius Bar(天才吧),中午的时候去了苹果店.这次没有像上次那样检查身份 ...

  9. flask sqlaichemy中filter和filter_by

    简单总结一下: 查询的三种方式: 要实现组合查询,要么连续调用filter:q = sess.query(IS).filter(IS.node == node).filter(IS.password ...

  10. SQL和access随机数

    Access: CLng(Rnd(种子数字)*1000000)   SQL Server ceiling(rand(abs(checksum(newid())))*1000000)