Linux Notes
Do what we want based on what others already did with additional abstraction and organization to service for uses.
- Preface
- Provide valuable insight to pepole who want to know more about the critical design issues in a modern operating system.
- Understand how things really work inside the machine, often called microprocessor or MPU or SoC.
- Two ways of designing OS: design OS based on specific hardware platform, or skip the hardware-dependent details and concentrate on the pure hardware-independent parts of the kernel.
- Efficient kernels take advantage of most available hardware features, such as addressing techniques, caches, processor exceptions, special instructions, control registers, I/O registers, memory management unit(MMU), and so on.
- When covering hardware features, out strategy is only sketch the features that are totally hardware-driven while detailing those that need some software support.
- shall be interested in kernel design rather than in computer architecture.
- Learning kernel shall use the bottom-up approach, hardware-->I/0 registers-->control registers-->OS-->system call-->User app
- Start with data structures needed to support he functions described in the chapter, Then move from the lowest level of functions to higher levels, often ending by showing how system calls issued by user applications are supported
- Memory management, including mmp, file buffering, process swapping, and Direct memory Access
- The virtual Filesystem layer and the Second and Third Extended Filesystems.
- Process creation and scheduling
- Signals, interrupts, and the essential interfaces to device drivers
- Timing
- Sychronization within the kernel
- Interprocess Communication
- Program Execution
- Introduction
- Linux was initially developed by Linus Torvalds in 1991 as an OS for IBM-compatible personal computers based on the Intel 80386 microprocessor.
- The current standards specify only an application programming interface API that is, a well-defined environment in which user programs should run.
- Windows NT and its descendents are POSIX-compliant.
- Unix-like kernels often share fundamental design ideas and features.
- Adopt the best features and desgin choices of several different Unix kernels.
- Monolithic kernel: large, complex, conventional
- Compiled and Statically linked traditional kernels:load and unload dynamically some portions of the kernel code, device drivers which are usually called modules.
- Kernel threading: organized as a set of kernel threads.A kernel thread is an execution context that can be independently scheduled;it may be associated with a user program, or it may run only some kernel functions. Context switches between kernel threads are usually much less expensive than context switches between ordinary processes, because the former usually operate on a common address space.
- adf
- zcv
- zcv
- dfadf
adf





Linux Notes的更多相关文章
- Linux Notes | Linux常用命令行笔记
[ show all running processes ] (1) ps -aux | less 'ps' means: Process Status The -a option tells ps ...
- Linux Notes:Linux下的远程登录协议及软件
常见的远程登录协议 1.RDP(remote desktopp protocol)协议,windows远程桌面协议 2.telnet CLI 界面下远程管理,几乎所有的操作系统都有,数据明文传输,不安 ...
- 对于linux下system()函数的深度理解(整理)
原谅: http://blog.sina.com.cn/s/blog_8043547601017qk0.html 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同 ...
- 转:对于linux下system()函数的深度理解(整理)
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为 ...
- 【C/C++】Linux下system()函数引发的错误
http://my.oschina.net/renhc/blog/54582 [C/C++]Linux下system()函数引发的错误 恋恋美食 恋恋美食 发布时间: 2012/04/21 11:3 ...
- (笔记)Linux下system()函数的深度理解(整理)
注:从其它地方转的非常好的一篇文章,值得深究! 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数 ...
- [转载]Linux下关于system调用
曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入.只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值.它所执行命令的返回值以及命令执行失败原 ...
- linux system函数引发的错误
转: https://my.oschina.net/renhc/blog/54582 先看一下问题 简单封装了一下system()函数: int pox_system(const char *cm ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
随机推荐
- eclipse如何设置UTF-8
一.Eclipse设置utf-8编码包括两个方面,一方面可以设置workspace工作间编码,另一方面可以设置Android Project项目编码,设置步骤: 1)设置workspace工作间编码: ...
- date命令的基本用法
date设置时间 设置时间:-s参数 date -s "20190426 15:22:33" date查看时间差 (-d参数多用于脚本) 查看时间差:-d参数date -d &q ...
- [转] flume使用(六):后台启动及日志查看
[From] https://blog.csdn.net/maoyuanming0806/article/details/80807087 处理的问题flume 普通方式启动会有自己自动停掉的问题,这 ...
- 本地docker镜像上传到腾讯云镜像仓库。
和上篇上传到Docker Hub类似,只是登录时切换成腾讯云镜像仓库地址(ccr.ccs.tencentyun.com/longdbtencentdocker/publongdb)即可. docker ...
- service iptables xxx无效命令的情况下,如何启动/重启iptables
最近在CentOS 7.6下使用service iptables xxx相关命令,提示如下错误:The service command supports only basic LSB actions ...
- spring boot快速入门 7: 使用aop处理请求
样例:登陆拦截(aop简单样例) 第一步:在pom 文件中加入aop依赖 <!-- spring aop --> <dependency> <groupId>org ...
- spring boot快速入门 1 :创建项目、 三种启动项目方式
准备工作: (转载)IDEA新建项目时,没有Spring Initializr选项 最近开始使用IDEA作为开发工具,然后也是打算开始学习使用spring boot. 看着博客来进行操作上手sprin ...
- Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. 调用函数约定不同
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is ...
- 05 synchronized
转载自: Java并发编程:synchronized http://www.cnblogs.com/dolphin0520/p/3923737.html 前文中也有相关的详细描述:02 如何创建线程 ...
- PTA (Advanced Level) 1014 Waiting in Line
Waiting in Line Suppose a bank has N windows open for service. There is a yellow line in front of th ...