人物专访:核心黑客系列之一 Robert Love

QQ20151113135154

每个星期,我们都采访一个内核编写社区的人,虽然这样的采访会很侧重技术,但是我们的立足点是为了让所有人都能接受。本周我们采访了Robert Love,现在他正在维护“可抢占内核”的升级包和其他一些事。他使用Linux已经7年了,对于现在的内核有很多贡献。所有这些最后用他自己的话来描述。

记者Jeremy Andrews(以下简称“JA”):请谈一点关于你自己和你的背景。

Robert Love:我现在是Florida大学计算机和数学系的学生,未婚但有一个很可爱的女朋友。我的编程兴趣是操作系统和数学/科学计算。

JA:你何时毕业?还会继续读研吗?

Rebert Lo[……]

Read more

hurlex — x86架构的内核Demo实现

QQ20151113135132

本科操作系统课程纯粹的理论学习始终给我一种漂浮在云中的感觉。为了能在实践中深刻理解操作系统的运行机制和x86CPU以及硬件原理,我决定自己动手写一个操作系统内核的Demo程序。

当然,一开始没有相关的基础自然要找资料去学习。在翻阅了于渊的《Orange’s 一个操作系统的实现》和川合秀实先生的《30天自制操作系统》后感觉这两本书都不是很适合初学者学习。前者体系略乱且在一开始就陷入了硬件机制的漩涡,容易让初学者找不到北;后者不需要初学者有足够的基础,但是在硬件机制等内容上过于简略。只适合一般的爱好者去使用,而作为计算机专业的同学只能作为参考。(肆意诋毁大神作品,罪过罪过……)[……]

Read more

《Linux内核设计与实现》章节节选—操作系统和内核简介

QQ20151113134857

题记:《Linux内核设计与实现》是Robert Love的力作,我们有幸将其翻译成中文,关于他的趣事和他对Linux内核的看法,参阅《人物专访:核心黑客系统之一 Robert Love》。阅读一本书,先了解一下作者的经历和最初的想法,或许也是打开阅读之门的钥匙。

由于现行一些商业操作系统日趋庞杂及设计上的缺陷,操作系统这个概念被弄得含混不清。许多用户把他们在显示器屏幕上看到的东西理所当然的认为就是操作系统。通常,当然在本书中也这么认为,操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分。这些部分应该包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的[……]

Read more

Linux内核之旅—微信平台开篇

20151113092838

十几年前,也就是2004年,那些在Linux内核方面已经驰骋5年的学生以分享知识的情怀申请域名,购买空间,创办了“Linux内核之旅”(http://www.kerneltravel.net/)网站,并撰写了电子杂志的系列文章:

第一期《走入Linux 世界》
摘要:本期涉猎了操作系统的来龙去脉后与大家携手步入 Linux 世界。我们力图展示给大家一幅 Linux 系统的全景图,并为了加深对 linux 系统的全面认知,亲手搭建了一个能运行在内存中的试验系统。同时为大家提供了几个 shell 脚本帮助建立试验系统。
第二期《i386 体系结构》(上)
摘要:本期上半部分将和[……]

Read more

Linux定时器使用

linux定时器使用 作者: 樊颖飞

定时器在内核的定义:

12 struct timer_list {
13 /*
14 * All fields that change during normal runtime grouped to the
15 * same cacheline
16 */
17 struct list_head entry; //定时器的链表
18 unsigned long expires;//以节拍为单位的定时时间,表示为定时器触发的到期时间
19 struct tvec_ba[……]

Read more

OS课程与Linux内核相结合之同步实例(三)

在 操作系统中讲到进程同步 的问题的时候,都会讲一些经典的例子,其中最经典的当属“生产者和消费者的问题”。生产者和消费者的规则是生产者生产一个产品后,消费者才能消费,并且在 消费者还没有消费已经生产的产品的时候,生产者是不能再进行生产的。牛涛写的这个例子演示了这一过程:

#include<linux/init.h>
#include<linux/module.h>
#include<linux/sem.h>
#include<linux/sched.h>
MODULE_LICENSE(“Dual BSD/GPL”);[……]

Read more

OS课程与Linux内核相结合之同步实例(二)

陈继峰同学在学习完成量时写了一个简单的模块,用于理解完成量的在同步机制中的用法,关于完成量的详细知识,参看 http://blog.chinaunix.net/u2/73528/showart_1101096.html
这个简单的例子,模拟了公交车的司机与售票员的同步。

#include<linux/init.h>
#include<linux/module.h>
#include<linux/sched.h>
#include<linux/sem.h>
MODULE_LICENSE(“Dual BSD/GPL”);

str[……]

Read more