Do what we want based on what others already did with additional abstraction and organization to service for uses.

  1. Preface

    • Provide valuable insight to pepole who want to know more about the critical design issues in a modern operating system.
    • Understand how things really work inside the machine, often called microprocessor or MPU or SoC.
    • Two ways of designing OS: design OS based on specific hardware platform, or skip the hardware-dependent details and concentrate on the pure hardware-independent parts of the kernel.
    • Efficient kernels take advantage of most available hardware features, such as addressing techniques, caches, processor exceptions, special instructions, control registers, I/O registers, memory management unit(MMU), and so on.
    • When covering hardware features, out strategy is only sketch the features that are totally hardware-driven while detailing those that need some software support.
    • shall be interested in kernel design rather than in computer architecture.
    • Learning kernel shall use the bottom-up approach, hardware-->I/0 registers-->control registers-->OS-->system call-->User app
    • Start with data structures needed to support he functions described in the chapter, Then move from the lowest level of functions to higher levels, often ending by showing how system calls issued by user applications are supported
    • Memory management, including mmp, file buffering, process swapping, and Direct memory Access
    • The virtual Filesystem layer and the Second and Third Extended Filesystems.
    • Process creation and scheduling
    • Signals, interrupts, and the essential interfaces to device drivers
    • Timing
    • Sychronization within the kernel
    • Interprocess Communication
    • Program Execution
  2. Introduction
    • Linux was initially developed by Linus Torvalds in 1991 as an OS for IBM-compatible personal computers based on the Intel 80386 microprocessor.
    • The current standards specify only an application programming interface API that is, a well-defined environment in which user programs should run.
    • Windows NT and its descendents are POSIX-compliant.
    • Unix-like kernels often share fundamental design ideas and features.
    • Adopt the best features and desgin choices of several different Unix kernels.
    • Monolithic kernel: large, complex, conventional
    • Compiled and Statically linked traditional kernels:load and unload dynamically some portions of the kernel code, device drivers which are usually called modules.
    • Kernel threading: organized as a set of kernel threads.A kernel thread is an execution context that can be independently scheduled;it may be associated with a user program, or it may run only some kernel functions. Context switches between kernel threads are usually much less expensive than context switches between ordinary processes, because the former usually operate on a common address space.
  3. adf
  4. zcv
  5. zcv
  1. dfadf

adf

Linux Notes的更多相关文章

  1. Linux Notes | Linux常用命令行笔记

    [ show all running processes ] (1) ps -aux | less 'ps' means: Process Status The -a option tells ps ...

  2. Linux Notes:Linux下的远程登录协议及软件

    常见的远程登录协议 1.RDP(remote desktopp protocol)协议,windows远程桌面协议 2.telnet CLI 界面下远程管理,几乎所有的操作系统都有,数据明文传输,不安 ...

  3. 对于linux下system()函数的深度理解(整理)

    原谅: http://blog.sina.com.cn/s/blog_8043547601017qk0.html 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同 ...

  4. 转:对于linux下system()函数的深度理解(整理)

    这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...

  5. 【C/C++】Linux下system()函数引发的错误

    http://my.oschina.net/renhc/blog/54582 [C/C++]Linux下system()函数引发的错误 恋恋美食  恋恋美食 发布时间: 2012/04/21 11:3 ...

  6. (笔记)Linux下system()函数的深度理解(整理)

    注:从其它地方转的非常好的一篇文章,值得深究! 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数 ...

  7. [转载]Linux下关于system调用

    曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入.只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值.它所执行命令的返回值以及命令执行失败原 ...

  8. linux system函数引发的错误

    转: https://my.oschina.net/renhc/blog/54582 先看一下问题 简单封装了一下system()函数:   int pox_system(const char *cm ...

  9. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

随机推荐

  1. windows phpinfo上不能找到memcache扩展 php版本5.6

    我的memcache用的我是memcached-win64-1.4.4-14.zip这个版本memcache扩展库下载地址:http://windows.php.net/downloads/pecl/ ...

  2. Mac下安装Fiddler抓包工具(别试了,会报错,没办法使用)

    下载: https://www.telerik.com/download/fiddler 离线版本:(链接: https://pan.baidu.com/s/1hr7f8QK 密码: ukg2) 安装 ...

  3. 静态类和静态方法,抽象类和抽象方法,new关键字,值类型和引用类型,接口

    静态类和静态方法:静态成员是与类相关,而非实例相关:普通类中的静态成员:1.只能通过类名访问.2.静态方法中只能访问静态成员,或通过对象访问实例成员.3.多个对象共享同一个成员.静态类(一般用作工具类 ...

  4. windows下Composer因php_openssl扩展缺失而安装失败

    Composer(https://getcomposer.org/)是PHP下的一个依赖管理工具.你可以在你的项目中声明你所需要用到的类库,然后Composer会在项目中为你安装它们.如果你了解Nod ...

  5. eclipse中怎样添加项目至SVN资源库

    转自:https://jingyan.baidu.com/article/642c9d341caac0644a46f73e.html 这是一个SVN最基本的一个使用方法,转一篇别人写的,方便日后查询. ...

  6. linux常用多线程下载工具

    1.axel 下载安装yum install axel 这个软件下载速度实时显示

  7. CentOS 7 下 MySql5.7 主从配置

    演示用两台全新MySql服务器: mysql1:10.10.1.55 (主) mysql2:10.10.1.56 (从) 配置主从,步骤如下:   STEP 1:在mysql1上创建复制账号 repl ...

  8. android Application类的详细介绍(转)

    在代码中经常看到application这个类,一直不知道这个是干什么用的,今天刚好有点时间,所以进行了详细的学习. 一.先对它的整体概念解释: 在android源码中对他的描述是; * Base cl ...

  9. js读取cookie信息

    1. 第一种方式读取cookie信息:用document.cookie.split(“; “)的方式把字符串分割成几个段,然后遍历整个数组 //javascript方法 function getCoo ...

  10. maven备忘

    maven常见命令 mvn clean mvn compile mvn package mvn clean compile package mvn -Djetty.port= jetty:run mv ...