linux 内核移植(二)——操作系统

一:什么是操作系统

(1)linux、windows、android、ucos就是操作系统

(2)操作系统本质上是一个程序,由很多个源文件构成,需要编译

连接成操作系统程序(vmlinz、zImage)

(3)操作系统的主要作用就是管理计算机硬件,给应用程序提供一

个运行环境。

二:操作系统的核心功能

(1)内存管理。如果没有操作系统,内存是需要程序自己来管理

的。譬、如在uboot中要使用内存的哪里是自己随便用的,没有注册也

没有限制。这时候如果程序自己不小心把同一块内存重复用了就会出

现程序逻辑错误。系统大了之后(内存多了)内存管理非常麻烦;有

了操作系统之后,操作系统负责管控所有的内存,所有的应用程序需

要使用内存时都要向操作系统去申请和注册,由操作系统的内存管理

模块来分配内存给你使用,这样好处是可以保证内存使用不会冲突。

(2)进程调度。操作系统下支持多个应用程序同时运行(所以可以

一边聊QQ一边看电影···),这是宏观上的并行。实际上在单核心CPU上

微观上是不能并行的,宏观上的并行就是操作系统提供的分时复用机

制。操作系统的进程调度模块负责在各个进程之间进行切换。

(3)硬件设备管理。没有操作系统时要控制任何硬件都要自己写代

码,有了操作系统后操作系统本身会去控制各个硬件,应用程序就不

用考虑硬件的具体细节了。操作系统的硬件设备管理模块就是驱动模

块。

(4)文件系统。文件系统是管理存储设备的一种方式。存储设备是

由很多个扇区组成的,每个扇区有512/1024/2048/4096字节,存储设

备要以扇区为单位进行读写。如果没有文件系统,程序要自己去读写

扇区,就得记得哪个文件在哪个扇区。有了文件系统之后我们人不用

再关注扇区,人只用关注文件系统中的目录和文件名,而不用管这个

文件在物理磁盘的哪个扇区。

三:操作系统的扩展功能

(1)协议栈

(2)有用的应用程序包。应用程序本身不属于操作系统内核的一部

分,应用程序是给人用的,面向某种功能的。譬如ping程序用来测试

网络是否联通,ifconfig程序用来配置网卡。

时间: 2024-11-08 17:44:08

linux 内核移植(二)——操作系统的相关文章

【转】 linux内核移植和驱动添加(三)

原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED驱动的添加 1, 将led.c驱动文件拷贝到linux-3.1.4/drivers/char/目录下 [email protected]# pwd /change/linux-3.1.4/drivers/char [email protected]#  cp /mnt/hgfs/fh/driver/

linux 内核移植和根文件系统的制作

1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其 中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5

【转】 linux内核移植和网卡驱动(二)

原文网址:http://blog.chinaunix.net/uid-29589379-id-4708911.html 一,内核移植步骤: 1, 修改顶层目录下的Makefile ARCH            ?= $(SUBARCH) CROSS_COMPILE   ?= $(CONFIG_CROSS_COMPILE:"%"=%) 修改为: ARCH :=arm CROSS_COMPILE :=/usr/local/arm/4.4.3/bin/arm-linux- 2, 拷贝配置文

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

基于tiny4412的Linux内核移植 -- 设备树的展开

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

Linux内核分析之操作系统是如何工作的

在本周的课程中,孟老师主要讲解了操作系统是如何工作的,我根据自己的理解写了这篇博客,请各位小伙伴多多指正. 一.知识点总结 1. 三个法宝 存储程序计算机:所有计算机基础性的逻辑框架. 堆栈:高级语言的起点,函数调用需要堆栈机制. 中断机制:多道系统的基础,是计算机效率提升的关键. 2. 函数调用堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间,即CPU内已经集成好了很多功能. 堆栈含以下元素: 函数调用框架 传递参数 保存返回地址(%eax) 提供局部变量空间 等等 C语言编译器

linux内核移植(一)——linux内核简介

一:linux的起源 Linux是一种开源电脑操作系统内核.它是一个用C语言写成,符合POSIX标准的类Unix操作系统,Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的.该计划开始于1991年,在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助. 二:linux内核版本 (1)linux0.01.初版,紧接着是0.02.0.03.0.10.0.11.0.12.0.95.0.96.0

Linux内核移植初探

内核移植的梯度: 初级:根据芯片公司的参考配置,编译开发板内核并了解执行过程 中极:添加内核驱动的方式方法 高级:修改或添加BSP包 linux内核特性: 可移植性强.支持的硬件平台广泛:超强的网络功能:多任务多用户系统:模块化的设计 五大子系统: 进程管理:内存管理:文件系统:网络协议:设备管理 内核获取路径:芯片厂商.内核源码官方 linux内核的目录结构层次结构: 平台相关目录树:arch目录下 平台无关目录树:其它 crypto目录:算法.加密涉及的源码目录 Documentation目

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

linux 内核移植(六)——C语言启动部分分析(一)

一:来源 前面分析,内核启动是从hesd.S开始的,在建立段式页表之后, ldr r13, __switch_data 跳转到__switch_data, __switch_data: .long__mmap_switched [email protected] r4 [email protected] r5 [email protected] r6 [email protected] r7 [email protected] r4 [email protected] r5 [email pro