第一次使用markdown做笔记

零‘OS基础

  1. 分时
  2. 实时

算法的特性:

  • 1 又穷性,算法是执行时候运行的有穷性,程序只是一段实现算法的代码
  • 2 确定性,算法对于特定的输入有特定的输出,程序提供了确定算法结果的平台
  • 3 可行性,算法需要考虑设计的可能,程序则具体是实现算法上的设计
  • 4 输入,算法有输入,算法的输入依靠程序的平台提供
  • 5 输出,算法的输出也靠代码的支持

单内核:效率比较高,但是,一损全损。

微内核:其他设备出错,不影响内存等的使用功能

UNIX家族OS的共同特点

  1. 很简洁,仅几百个系统调用
  2. 所有的东西都当作文件对待
  3. C语言编写内核和系统工具软件,强大的移植能力
  4. 高效的创建进程,独特的fork
  5. 提供一套简单与稳定的进程间通信元语(IPC)
  6. 以文本形式存储配置数据

内核编程的特点

  • 无libc,无任何第三方库,不能包含第三方头文件

  • GNU C而非ANSIC

  • 没有内存保护机制

  • 不要轻易在内核中使用浮点数

  • 容积小而固定的栈--内核栈的大小为两页

  • 同步和并发--1.Linux是多任务操作系统 2.内核支持对称多处理器系统 3.中断是异步来的 4.Linux内核可以抢占

  • 可移植的重要性--
    字节序、字节对齐、不假定字长

死循环和无限递归的区别?--无限递归在调用函数的时候,会无限分配空间,导致栈区被占满,爆炸。

进程睡眠

  1. 被动
  2. 主动
  3. 深度睡眠
  4. 浅度睡眠

内核线程

内核空间

对于提供的保护机制的现代操作系统来说,内核独立普通应用程序,他处于系统态

被系统态保护起来的内存空间,成为内核空间

用户空间

处理器在任何制定时间上的活动概括如下:

  1. 运行于用户空间,执行用户进程(可睡眠)
  2. 运行于内核空间,处于进程的上下文,代表某个特定的内核线程执行(可睡眠)
  3. 执行于内核空间,处于一场上下文,与任何用户进程无关,一般用来处理个特定的异常(如中断,软中断)

Linux编码风格--内核

1.接近K&R C风格

2.缩进

1)制表符(8个字符长度),反对多层缩进 
2)每行最多80个字符 

3.switch语句

1)case和switch同列
2)Through Case 时加注释于下一行

4.花括号

1)函数体采用同列
2)其他采用:左括号紧跟在语句的最后,与语句同行,有括号要新起一行作为该行第一个字符,且于对应的语句同列
3)有花括号可以不单独占一行,与后续关键字同行
4)不需要一定使用括号的语句可以忽略它(败笔)

5.命名规范
6.函数

1)函数代码长度不应该超过两屏
2)局部变量不超过10个
3)允许使用inline

7.注释

1)应该描述代码要做什么和为什么这样做,而不是通过什么来实现的
2)注释不应该包含谁写了那个函数,修改日期和其他琐碎而无意义的内容
3)注释中,重要信息常常“xxx:”开头,而bug通常是已“FIXME:”开头

8.Typedef

typedef NT T; typedef int INT; x += y; x = x + y; typedef strcut STU { // }STU;

1)内核开发者强烈反对使用Typedef,认为:
2)
3)
4)

9.在源码中减少使用ifdef

1)...
2)do{}while(0)和正常语句的区别

10.结构初始化

  • C语言中 struct STU st={“xx”,“ww”,“ee”,“ff”};
  • 内核中 struct foo my_foo = {.a = INTIAL_A,.b = INTIAL_B};

11.客文化

  1. 黑客--寻找漏洞,采取安全措施,防止核客攻击计算机。褒义Hacker
  2. 核客--寻找系统漏洞,以便破坏(贬义)
  3. 骇客--专业从事商业软件,恶意入侵别人的网站等(Cracker)
  4. 极客--随着互联网文化的兴起,这个词包含智力超群和努力的语意
  5. 红客--一种精神,热爱祖国,坚持正义,开拓进取的精神,抵御反击破坏者
  6. 百客--网络守护神
  7. 灰客--不黑不白
  8. 博客--爱写blog的人
  9. 播客--爱show爱语音的人
  10. 闪客--疯狂热爱制作flash的人
  11. 赚客--凭借自己的网络知识技术获利的人
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,119评论 0 23
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,043评论 25 707
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 7,798评论 0 27
  • 2017年9月23日,在西安长鸣路68号,陕西红色革命纪念园举行的新闻发布会意义重大,也将开启西安文化旅游的新篇章……
    人人正能量阅读 287评论 0 0
  • 第六章 参军 许爸爸每天在床上辗转反侧,没有睡过一天踏实的觉。几天下来,额头上又增添了几道皱纹,显得更加苍老。他...
    陌生的云阅读 421评论 4 2