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

QQ图片20151113135154

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

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

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

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

Rebert Lo[……]

Read more

hurlex — x86架构的内核Demo实现

QQ图片20151113135132

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

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

Read more

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

QQ图片20151113134857

题记:《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

虚拟内存管理实例

关于虚拟内存管理的基本内容参看相关内容,在此不再赘述,在理论的基础上,设计出合理的实验可以强化对理论的理解和应用能力

————————————————————————————————–

实验内容:在proc 文件系统下,建立一个文件,每次向这个文件写人字符时,调用相应的虚拟内存处理函数

  1. /*
  2. mtest_dump_vma_list():打印出当前进程的各个VMA,这个功能我们简称”listvma”
  3. mtest_find_vma(): [……]

Read more

Linux文件系统(二)-为仁由己

儒家倡导修身齐家治国平天下,认为天下之本在国,国之本在家,家之本在身在儒家看来,通过修身养性而实现的人内在的身心和谐,是实现人际和谐、群己和谐,最后达至天人和谐的必要前提。只有成己才能成人,只有成己才能成物,出发点都是成己,就是自我内在的身心和谐。

    Linux文件系统的魅力在于“成己” 成人”。如果说整个Linux内核相当于一个“国”,那么,VFS 相当于一个“家”,且是一家之长,而各种具体的文件系统相当于“己”,或者说家庭中的一个个子女。在VFS统领的这个大家庭中,各个成员之所以能相互友好共存,在于其所具有共性和个性。

   尽管我们熟知[……]

Read more

Linux文件系统(一)-群居和一

 儒家和谐的思想不仅主导着我们的日常生活和社会关系,而且在Unix/Linux文件系统的设计中充分体现。先秦儒家以西周末年太史史伯提出的和实生物,同则不继。《国语·郑语》中,则对和谐思想做了进一步的完善和发展,把作为处理人的身心关系、人际关系、群己关系、人与自然关系的根本法则,所谓和也者,天下之达道也 “既是人伦关系的价值取向,又是万事万物生成发展的机制。

 儒家所说的和谐,并不是毫无差异的苟同,而是包含差异或对立的多种不同因素协调、互补、融合、共存、相济相成所形成的对立统一,是一种多样性基础上的统一。

   为了保证Linux的开放性,设计人员必须考虑如何使Lin[……]

Read more