zoukankan      html  css  js  c++  java
  • 《Unix内核源码剖析》

    《Unix内核源码剖析》

    基本信息

    作者: (日)青柳隆宏   

    译者: 殷中翔

    丛书名: 图灵程序设计丛书

    出版社:人民邮电出版社

    ISBN:9787115345219

    上架时间:2014-2-17

    出版日期:2014 年3月

    开本:16开

    页码:1

    版次:1-1

    所属分类:计算机

     

    更多关于》》》 《Unix内核源码剖析》

     

    编辑推荐 

          精读1万行代码,深入理解操作系统原理!

      超级计算机“京”的L1缓存设计者青柳隆宏经典著作!

      彻底读懂Unix源代码!

     

    内容简介

        书籍

        计算机书籍

      《unix内核源码剖析》是一本unix v6内核源代码的阅读指南。作者结合unix v6已公开的相关文档,对unix v6的内核源码进行详细剖析,旨在让读者更深入地理解进程、中断、块i/o系统、文件系统、字符i/o系统、启动系统等操作系统的基本原理。

      《unix内核源码剖析》适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。

     

     

    目录

    《unix内核源码剖析》

    第i部分

    什么是unix v6  1

    第1章 unix v6的全貌  2

    1.1  什么是unix  v6  2

    1.2  unix的历史2

    1.3  unix  v6内核  4

    1.4  构成unix v6运行环境的硬件  4

    pdp-11  5

    1.5  代码  9

    1.6  手册  9

    1.7  小结  10

    第ii部分

    进程  11

    第2章 进程  12

    2.1  进程的概要  12

    什么是进程  12

    进程的并行执行  12

    进程的执行状态  14

    用户模式和内核模式  14

    交换处理15

    2.2  proc结构体和user结构体  15

    proc结构体  16

    user结构体  17

    2.3  为进程分配的内存  21

    代码段  21

    数据段  21

    虚拟地址空间  22

    变换地址  24

    2.4  小结  26

    第3章 进程的管理i  27

    3.1  进程的生命周期  27

    3.2  创建进程  28

    进程的复制  28

    父进程和子进程  29

    系统调用fork  29

    newproc()  32

    panic()  36

    3.3  切换执行进程  37

    中断执行进程  37

    进程的执行状态  37

    选择执行进程的算法  38

    上下文切换  39

    系统调用wait  39

    sleep()  39

    swtch()  41

    swtch()  的返回位置  44

    setpri()  51

    wakeup()  51

    setrun()  52

    3.4  执行程序  53

    程序执行文件的格式  53

    系统调用exec  54

    estabur()  62

    sureg()  65

    expand()  66

    3.5  进程的终止  68

    系统调用exit  69

    系统调用wait  71

    3.6  数据区域的扩展  73

    系统调用break  73

    3.7  管理内存和交换空间  76

    map结构体  76

    获取未使用区域  77

    释放区域  79

    3.8  小结  81

    第4章 交换处理 82

    4.1  什么是交换处理  82

    代码段和数据段  82

    sched()  83

    xswap()  87

    4.2  共享代码段的处理  88

    xalloc()  90

    xfree()  93

    xccdec()  93

    4.3  小结  94

    第iii  部分

    中断  95

    第5章 中断与陷入 96

    5.1  什么是中断与陷入  96

    什么是中断  96

    什么是陷入  97

    5.2  优先级与向量(vector)  98

    中断优先级和处理器优先级  98

    中断和陷入向量  100

    5.3  中断和陷入的处理流程  100

    发生中断或陷入  101

    执行call和trap  104

    5.4  时钟中断处理函数  107

    时钟设备的规格  107

    时钟中断处理函数的内容  108

    clock()  113

    5.5  陷入处理函数  117

    trap()  117

    grow()  122

    5.6  系统调用的处理流程  123

    传递参数的方法  123

    sysent结构体  124

    trap()  126

    5.7  小结  128

    第6章 信号  129

    6.1  什么是信号  129

    信号的发送方法  129

    确认接收信号  129

    信号的种类  130

    ssig()  131

    kill()  132

    signal()  133

    psignal()  133

    issig()  134

    psig()  134

    core()  136

    在系统调用处理中处理信号  136

    6.2  跟踪功能  137

    什么是跟踪  137

    ipc结构体  138

    跟踪的处理流程  138

    stop()  139

    ptrace()  140

    procxmt()  142

    wait()  143

    6.3  小结  144

    第iv  部分

    块i/o  系统  145

    第7章 块设备子系统  146

    7.1  设备的基础  146

    设备的种类  146

    设备驱动  146

    类别和设备编号  147

    特殊文件  147

    7.2  块设备子系统  148

    缓冲区  148

    b-list和av-list  150

    raw  输入输出  151

    7.3  缓冲区的初始化  152

    binit()  152

    clrbuf()  153

    7.4  缓冲区的获取和释放  154

    getblk()  154

    notavail()  156

    brelse()  157

    7.5  读取  158

    读取的种类  158

    bread()  159

    iowait()  160

    iodone()  160

    geterror()  161

    breada()  161

    incore()  162

    7.6  写入  163

    写入的种类  163

    bwrite()  164

    bawrite()  165

    bdwrite()  165

    bflush()  166

    7.7  raw输入输出  167

    physio()  167

    swap()  169

    7.8  小结  171

    第8章 块设备驱动  172

    8.1  什么是块设备驱动  172

    块设备驱动表  172

    设备处理队列  173

    处理流程  173

    8.2  rk-11磁盘驱动  174

    rk11-d  175

    特殊文件  175

    设定bdevsw[]  176

    中断处理函数  176

    rk11-d  的寄存器  177

    rkstrategy()  179

    rkstart()  180

    rkaddr()  180

    devstart()  181

    rkintr()  182

    raw  输入输出  184

    8.3  小结  184

    第v  部分

    文件系统  185

    第9章 文件系统  186

    9.1  什么是文件系统  186

    inode  186

    树状结构的命名空间  187

    挂载  187

    访问权限  188

    根磁盘  189

    9.2  块设备的区域  189

    用于启动的区域  190

    超级块  190

    inode区域  191

    存储区域  193

    9.3  挂载  193

    mount结构体  193

    系统调用mount  194

    getmdev()  196

    系统调用umount  197

    9.4  inode的获取和释放  198

    inode[]  198

    iget()  201

    iput()  203

    iupdat()  204

    9.5  inode与存储区域的对应关系  205

    bmap()  208

    itrunc()  211

    9.6  分配块设备中的块  213

    ialloc()  213

    ifree()  216

    alloc()  217

    free()  220

    getfs()  222

    badblock()  222

    9.7  将路径变为inode  223

    目录的内容  223

    namei()  224

    access()  230

    9.8  初始化与同步  232

    iinit()  232

    update()  232

    9.9  小结  234

    第10章 文件处理  235

    10.1  用户程序对文件的处理  235

    10.2  3  个结构体  235

    标准输入输出  237

    10.3  文件的生成和打开处理  237

    系统调用creat  238

    maknode()  238

    wdir()  239

    系统调用open  240

    open1()  241

    falloc()  242

    ufalloc()  243

    openi()  243

    10.4  文件的读取和写入  244

    系统调用read、write  244

    rdwr()  245

    readi()  246

    writei()  248

    iomove()  250

    getf()  252

    10.5  指定文件的读写位置  252

    系统调用seek  252

    10.6  关闭文件  254

    系统调用close  254

    closef()  254

    closei()  255

    10.7  目录的生成  255

    系统调用mknod  255

    10.8  文件的链接  256

    系统调用link  257

    suser()  258

    10.9  删除文件  258

    系统调用unlink  258

    10.10  小结  260

    第11章 管道  261

    11.1  什么是管道  261

    使用管道的优点  262

    11.2  开始管道通信  262

    系统调用pipe  262

    11.3  收发数据  264

    writep()  264

    readp()  266

    plock()  267

    prele()  267

    11.4  结束管道通信  268

    closef()  268

    11.5  建立管道通信的流程  268

    建立父子进程间的通信  268

    系统调用dup  272

    11.6  小结  273

    第vi  部分

    字符i/o  系统  275

    第12章 字符设备  276

    12.1  字符设备驱动  276

    字符设备缓冲区  277

    对缓冲区的操作  278

    初始化缓冲区池  280

    12.2  lp11设备驱动  281

    什么是lp11  281

    lp11设备驱动的功能  282

    lpopen()  284

    lpwrite()  285

    lpcanon()  285

    lpoutput()  287

    lpstart()  288

    lpint()  288

    lpclose()  289

    12.3  小结  289

    第13章 电传终端  290

    13.1  什么是电传终端  290

    电传终端的接口  290

    特殊文件  291

    tty  结构体  292

    maptab[]  295

    partab[]  295

    kl11/dl11  296

    kl11/dl11设备驱动的规格  297

    kl11/dl11设备驱动函数  298

    13.2  终端的开启和关闭  298

    klopen()  298

    klclose()  300

    wflushtty()  300

    flushtty()  301

    13.3  终端的设定  302

    gtty()  302

    stty()  302

    sgtty()  303

    klsgtty()  304

    ttystty()  304

    13.4  从终端输入文字  305

    klrint()  306

    ttyinput()  306

    13.5  读取输入的数据  308

    klread()  309

    ttread()  309

    canon()  310

    13.6  向终端输出数据  313

    klwrite()  314

    ttwrite()  315

    ttyoutput()  316

    ttstart()  318

    ttrstrt()  319

    klxint()  320

    13.7  小结  320

    第vii  部分

    启动系统  321

    第14章 启动系统  322

    14.1  启动的流程  322

    start  323

    main()  326

    /etc/init  329

    14.2  小结  330

    附 录  参考资料等  331

    a.1 参考文献、网站  331

    a.2 pre  k&r  c  335

    后记  337

    索引  338

     

     

    本图书信息来源:互动出版

     

  • 相关阅读:
    服务器并发由200到4000并发的一个优化
    HTTP之一 If-Modified-Since & If-None-Match
    HTTP之二 http 301 和 302的区别
    003_内存的深入理解
    002_IO磁盘深入理解
    django学习笔记【003】创建第一个带有model的app
    MySQL innodb_autoinc_lock_mode 详解
    django学习笔记【002】创建第一个django app
    django学习笔记【001】django版本的确定&创建一个django工程
    innodb引擎redo文件维护
  • 原文地址:https://www.cnblogs.com/china-pub/p/3553763.html
Copyright © 2011-2022 走看看