这周主要对于以往的知识进行了复习,包括开始的Linux基础,以及对需要学习的新知识进行了复习,也对markdown的语法进行了初步的了解。开始学习markdown的一些基本语法和Linux的一些常用命令。

 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系 统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。

安装和登录命令:





login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;


文件处理命令:





file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;


系统管理相关命令:



df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

网络操作命令:



ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;

系统安全相关命令:



passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

其它命令:

       tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
       
 **对于Linux下的一些常用命令进行了了解和学习,初步懂得了Linux里面的大部分命令。然而对于markdownde语法了解的还是不够清楚,希望下次的作业能用Markdown完成。**

Step 0:

这个阶段的同学基本对OS没有认识, 可以从安装系统, 配置系统,学习各种编辑器的使用,

与脚本的编写.建议从Linux入手,毕竟比较容易得到各种发行版本,而且用户群比较大,有了问题

容易得到解答.推荐的发行版本是桌面Ubuntu,服务器 Debian.

推荐教材:

LinuxCBT 系列的培训教材不错, swf文件, 属于手把手教的,只是用英语教学.

O'Reilly 出版了一系列的关于linux环境下的工具使用的书. 包括了Bash, vim , emacs,

linux 配置等 很多.用到具体工具时可以参考.

入门阶段各个linux社区的FAQ很重要,基本包含了初学者能碰到的大部分问题,好好利用.

例如国内的linuxsir, CLF, CU, etc .国外主要时几个主要的邮件列表.

Step 1:

对于系统使用有了基本掌握之后,开始进入编写应用程序阶段 ,

进入这阶段前提是

C语言必须 有非常扎实的基础. 如果看完 expert c programming , 觉得没有困难,算是过关

能基本使用vim,emacs ,其中之一.

基本会编写makefile.

这阶段学习的必备之书是APUE.作者steven是我非常敬佩的前辈,可惜英年早逝.这本书讲解非常

全面,初学会感到困难,但是坚持下来受益非浅.第二版已经引进可以买到

Howto write makefile   这个有中文的,可以作为写makefile的参考.
O'Reilly 也有 emule上搜吧 这里除了一般的应用程序外有3个重要的分支. A.网络编程. 类unix下有非常丰富的网络工具所以这个是很大的一类分支.网络通信本质上也是
进程间通信,所以steven的进程间通信3卷本就是必看的书(steven生前只完成了2卷
第三卷由他的朋友续写.具体情况不明).作为更进一步可以研究apache的衍生项目
APR和ACE(这个需要比较深厚的C++,设计模式的功底).可以说网络编程是一个非常大的分支,
精通需要耗费很多时间.研究内核看完steven的前2卷即可. B.Xwindows 这个涉及到GUI, 也是一个庞大的分支,研究内核只需要关注X的架构和
驱动之间的关
系即可.这个分支很庞大,可是好的书其实不多.只有92年的这个系列
O'Reilly - The Definitive Guides To The X Window Systems,
Vol 1 - Xlib Programming Manual, 3Rd Ed .
最近xserver的架构有很大的变化,xgl的出现石破天惊,看过novell2月在法国的演示
真是无话可说.只能说在创新这一点上我们还没有资格来谈.这点我同意BNN的观点,这
10年我们的任务就是学习,追赶.CLF 上面有一些文章和翻译的project C. 脚本.研究内核掌握Bash即可,不过这几年perl,php,python,ruby都很火爆,国内这
这方面也很红火.这些书如过江之鲫,没啥好说的.

Step2:

开始进入OS 的正题, 首先要掌握基本概念 首推 operating system concepts 第六版

通过这本书可以掌握基本概念, 有个感性认识.

  然后可以看<<操作系统设计与实现>> 这本书是结合minix这个教学系统来讲的,也是经典书籍
不过很少有人有耐心看完上下两册.现在已经进化到minix3了,老头不甘于只作一个教学系统.差点
去念老头的phd.minix3 已经改变了很多. 还有一本很好的书籍Operating Systems: A Design-Oriented Approach 这本书很难找,
当年我从一堆垃圾书中掏到这本世图的影印本,印数很小,不过确实是一本好书,作者把每章的概
念对应到java代码 ,深入浅出,可惜没人重视. M. J. Bach , The Design of the UNIX Operating System, Prentice-Hall
经典中的经典 这个阶段主要是从总体上把握OS的整体结构,对各个概念基本了解.

step 3:

  以linux为平台的内核开发的初级阶段.

    <<understand linux kernel>> 3th

    <<Linux Device Driver >> 3th

    <<Linux kernel Develop>> 2th 

    <<Approach for.x86.and.PowerPC.Architectures>>

    介绍unix OS内核的几本重要的书:

    The Design and Implementation of the FreeBSD Operating System
FreeBSD 的经典诠释. The Design and Implementation of the 4.4BSD Operating System 4.4BSD-Lite的经典诠释 《 UNIX 高级教程系统技术内幕 》中文的是96年的老版本,听说出新版了,还没到手 Solaris Internals: Core Kernel Architecture
sun在unix历史上作出了很多贡献,solaris的进程调度 内存管理,文件系统 都有独到之处.
还有线程模型是m:n 的混合模式, 实现方法还有很有意思的.

Step4:

从这里开始进入了OS的具体实现和内核很具体的分支.

进入这章之前必须要对编译器, 体系结构有中等水平的认识.

也就是说编译器要看过龙书,体系要看过量化方法这本.最好加上see mips run

调度, 内存管理, 网络协议栈,文件系统,体系相关.进程管理,

Linker&&Loader , tool-chain

这些都是很重要的分支都有很重要的应用.

  对于调试器原理要有一定的了解,能熟练使用

  The Linux&reg; Networking Architecture: Design and Implementation of Network

  Understanding The Linux Virtual Memory Manager Mel Gorman ,
和这本书的作者当面讨论过, 很nice的人,却在ibm做java coder 好奇怪 呵呵 2.4内核内存管理的全面分析, 2.6中改动不小 linux 情景分析 2.4 kernel 的全面分析. 浙大的毛德操,李善平老师力作. linux 完全注释 linux 早期版本的全面解析 国人力作 solaris 代码已经公开 可以参考 Wiley.UNIX.Filesystems.Evolution.Design.and.Implementation SunOS50MultithreadArchitecture Wiley - Symbian OS Internals {Real-time Kernel Programming} 这一阶段 书籍已经是辅助,主要是靠查看代码,做实际的修改,实验,比较.

Step 5 :

进入微内核高端专用系统移植与开发.QNX, IOX , RTEM,ARINC-653 XEN

纯粹的学术研究的os : Plan 9 (派生出utf8 , proc 文件系统) Plan B Hurd Oskit L4

  到这一阶段的人数很有限, 基本是靠团队,靠实力,靠经验摸索了

有用的工具: lxr 索引代码的利器.

有关系统软件的战略问题见陈怀临的对中国系统软件的思考

btw: kuth的书估计不是每个人都有耐心看完的,所以平时无聊的时候建议看mit算法导引的录像.

20169207《Linux内核原理与分析》第三周作业的更多相关文章

  1. 2019-2020-1 20199329《Linux内核原理与分析》第九周作业

    <Linux内核原理与分析>第九周作业 一.本周内容概述: 阐释linux操作系统的整体构架 理解linux系统的一般执行过程和进程调度的时机 理解linux系统的中断和进程上下文切换 二 ...

  2. 2019-2020-1 20199329《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 一.上周问题总结: 未能及时整理笔记 Linux还需要多用 markdown格式不熟练 发布博客时间超过规定期限 二.本周学习内容: <庖丁解 ...

  3. 2019-2020-1 20209313《Linux内核原理与分析》第二周作业

    2019-2020-1 20209313<Linux内核原理与分析>第二周作业 零.总结 阐明自己对"计算机是如何工作的"理解. 一.myod 步骤 复习c文件处理内容 ...

  4. 20169212《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 这一周学习了MOOCLinux内核分析的第一讲,计算机是如何工作的?由于本科对相关知识的不熟悉,所以感觉有的知识理解起来了有一定的难度,不过多查查资 ...

  5. 20169210《Linux内核原理与分析》第二周作业

    <Linux内核原理与分析>第二周作业 本周作业分为两部分:第一部分为观看学习视频并完成实验楼实验一:第二部分为看<Linux内核设计与实现>1.2.18章并安装配置内核. 第 ...

  6. 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...

  7. 2017-2018-1 20179215《Linux内核原理与分析》第二周作业

    20179215<Linux内核原理与分析>第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型.X86汇编指令包括几种内存地址的寻址方式和push.pop.c ...

  8. 2018-2019-1 20189221《Linux内核原理与分析》第一周作业

    Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...

  9. 《Linux内核原理与分析》第一周作业 20189210

    实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别.其中学到了LInux中的应用程序大都为开源自由的软件, ...

  10. 2020-2021-1 20209307 《Linux内核原理与分析》第九周作业

    这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)> 这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第九周作业> 这个作业的目标 & ...

随机推荐

  1. ASCII、Unicode和UTF-8编码的区别;中英文混合截取

    ASCII编码是128个字符 中国把汉字编入GB2312,Shift_JIS/Euc-kr各国标准..... Unicode是为了解决各国乱码的,但浪费存储空间 UTF-8编码把一个Unicode字符 ...

  2. Liunx cal

    1.命令格式: cal [参数][月份][年份] 2.命令功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份 3.命令参数: -1 显示一个月的 ...

  3. MySQL优化(一) 优化关键技术

    MySql的优化是一个综合性的技术,主要包括有: (1)表的设计合理化(符合 3NF 三范式) (2)添加适当的索引(Index):索引分类:普通索引.主键索引.唯一索引.全文索引(文本).空间索引. ...

  4. Android.Tools.Summary

    Android平台上工具的总结 每个工具的详细使用和深入理解参考每个工具相关的blog. 1. Android SDK中提供的工具 http://developer.android.com/tools ...

  5. JoyOI1940 创世纪

    一道基环树+树形\(DP\) 原题链接 显然输入的是内向基环树森林,且我们可以单独考虑每一棵基环树. 既然是基环树,自然先\(dfs\)找环,然后随便找环上的一点\(r\),将其与\(A[r]\)的边 ...

  6. 修改电脑自动休眠时间win10

    https://jingyan.baidu.com/article/adc81513a481cdf723bf73e6.html

  7. EasyUI DataGrid 获得分页信息

    var b = $('#SBDiv_1_DateGrid').datagrid('options'); console.info(b); 具体需要哪些字段,可以通过火狐debug,然后自己找需要的信息 ...

  8. python之排列组合测试

    # test permutations and combinations import itertools as it for i in it.combinations('abcd',2): prin ...

  9. 【搜索】C - Catch That Cow

    #include<stdio.h> #include<string.h> struct A{ int state; int step; }queue[]; // 结构体数组用来 ...

  10. python之Bottle框架

    一.简单的Bottle框架 1)bottle框架简介 安装 pip install bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架. 此框架只由一个 .py 文件,除 ...