写在操作系统学习前

辩证的看设计,无论是何种设计,总会有优点缺点,不要走入“那种编程语言更好”类似的误区。譬如:Linux相对于Minix,Minix的设计哲学按说是更强大(内核体积进一步减小,各模块解耦充分。但是Minix就是不如Linux实用,实际中服务器基本都是Linux内核。所以一定要明白Linux也不是万能的,也有设计缺点。


第一步

熟悉操作系统基本原理,无论是知乎还是百度,或者是《操作系统原理》类似的书籍。首先明白操作系统分几部分组成,每部分设计的目的。(把自己当成大牛,想想自己会怎么设计操作系统,也就能明白大牛为什么要这么设计,设计的好处和坏处)。

第二步

搭建自己的实验环境,推荐《ORANGE’S:一个操作系统的实现(高清晰版)》这本书。按照书上的介绍,搭建开发环境。(这一步很重要,多少人眼高手低最终没学会,就是因为实验环境没搭建好,我在很多年前也犯过此错误,天天看书就以为学会了,实际怎么修改代码都不会。这就是因为没有在实际环境中开发、实验导致的)。

第三步

先学《linux0.11内核设计》,根据赵炯博士的书,先搞明白一个最简单的内核由那些部分组成。内核设计思想是如何和具体的硬件关联起来的。其实,看完这本书就差不多了,因为操作系统设计思想一直没变。后面只是为了实现各种额外的功能而采取的具体的策略。就比如云操作系统、虚拟文件系统、并行计算等等,确实是新技术,但是好学。学会基本思想,后面就一通百通了。

第四步

再看《深入Linux内核架构》,详细了解当前内核最新的技术进展,了解每一部分的发展方向。最好、最好,动手改下内核,做做实验。

以上就是个人的一点见解,有问题请联系我。联系方式,邮箱:dulu150@126.com。或者论坛直接留言。

Linux内核学习路径相关推荐

  1. Linux内核学习编译流程

    一.前言 linux内核学习 1.安装vmware虚拟机或者virtualbox,再安装发行版本linux 2.www.kernel.org,挑选一个内核版本 3.进行解压并编译 4.自己写一些模块( ...

  2. 【转载】linux内核学习书籍

    [转载]linux内核学习书籍 1, 关于操作系统理论的最初级的知识.不需要通读并理解<操作系统概念><现代操作系统>等巨著,但总要知道分时(time-shared)和实时(r ...

  3. Linux内核学习①:内核的下载、编译及过程中的问题处理

    Linux内核学习①:内核的下载.编译及过程中的问题处理 Linux内核文件下载 内核下载网址: http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/lin ...

  4. Linux内核学习(三)之asm.s和trap.c的关联!

    前言: 大家好,今天给大家解析一下Linux中断处理流程里面asm.s和trap.c里面源码,对于Linux中断工作流程不清楚的朋友,可以看上篇文章,这里再提示一下asm.s和trap.c的源码目录: ...

  5. linux 内核学习2-使用笨叔叔定制的内核

    linux 内核学习2-使用笨叔叔定制的内核 1. 目的 编译一个ARM版本的内核镜像,谁让我是做Android的呢!并且在QEMU上运行. 2. 准备工作 2.1 开发环境 ubuntu 18.4虚 ...

  6. Linux内核学习--内存管理模块

    Linux内核学习--内存管理模块 首先,Linux内核主要由五个部分组成,他们分别是:进程调度模块.内存管理模块.文件系统模块.进程间通信模块和网络接口模块. 本部分所讲的内存是内存管理模块,其主要 ...

  7. linux内核学习之三:linux中的32位与64位

    linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...

  8. Linux疑难杂症解决方案100篇(十五)-万字长文带你深入Linux 内核学习:环境搭建和内核编译

    一.linux内核学习之一:环境搭建--安装Debian7.3 本系列文章假设读者已对linux有一定的了解,其实学习linux内核不需要有很深的关于linux的知识,只需要了解以下内容:linux基 ...

  9. 操作系统进程学习(Linux 内核学习笔记)

    操作系统进程学习(Linux 内核学习笔记) 进程优先级 并非所有进程都具有相同的重要性.除了大多数我们所熟悉的进程优先级之外,进程还有不同的关键度类别,以满足不同需求.首先进程比较粗糙的划分,进程可 ...

  10. 我的Linux内核学习笔记

    在开始今天的内容之前,其实有一些题外话可以和大家分享一下.自从工作以来,我个人一直都有一个观点.那就是怎么样利用简单的代码来说明开发中的问题,或者是解释软件中的原理,这是一个很高的学问.有些道理看上去 ...

最新文章

  1. dagger2记录篇
  2. 修改shell命令提示符和命令的输入颜色
  3. ASP.NET MVC入门(一)---MVC的Hello World
  4. 机器学习相关从业者如何兼顾理论与工程能力
  5. hibench测试出现问题--zookeeper
  6. torch 安装的问题
  7. 测试AS3的性能9800粒子
  8. linux卸载kong,Ubuntu 源码安装Kong
  9. 8086CPU 的寻址方式(重点)
  10. 【刘文彬】【源码解读】EOS测试插件:txn_test_gen_plugin.cpp
  11. 掌握这5款 Edge插件,让你的浏览器使用更高效!
  12. 【GA MTSP】基于matlab遗传算法求解多旅行商问题(多且同始终点)【含Matlab源码 1339期】
  13. 电话薄程序java程序实现
  14. 空间点到直线距离的一种解法
  15. OSChina 周二乱弹 —— 怎么制作妹子面
  16. 新加坡风险投资公司将投资1000万美元建立加密货币区块链投资基金
  17. vue中添加语音播报的功能
  18. c++ 按值传递(Byval) 和 按地址传递(ByRef)
  19. Python零基础自学3(黑马)
  20. 阑尾炎护理查房PPT模板

热门文章

  1. 自制麦克纳姆轮遥控小车
  2. 最优化算法之粒子群算法(PSO)
  3. 博主力推!!NRF52832 BLE 抓包sniffer来了!附带安装使用说明
  4. 【转载】爷爷和我---来自泊小豆的微博
  5. 联想硬盘保护系统计算机名,联想硬盘保护系统模式之间的切换方法
  6. 大名鼎鼎的挖掘鸡最新版本6.5
  7. vb 运行错误429 mysql_win7系统运行VB工具提示“运行时错误429 ActiveX部件不能创建对象”的解决方法...
  8. asp上传服务器后台图片显示,利用ASPUPLOAD,ASPJPEG实现图片上传自动生成缩略图及加上水印...
  9. 详解威佐夫博弈(POJ1067)
  10. HealthKit框架简介