Linux内核的基本概念

物理地址VS虚拟地址

    Linux所使用的地址是虚拟地址;CPU真正最后使用或者访问的是物理地址。所以,虚拟地址和物理地址必须存在一个转换机制。
  • 具体的转换机制:建立页表,通过查询页表完成转换。
  • 一般而言,页的容量大小是4K,所以,页表数是所访问的物理地址除以4K的商。例如:如果所访问的空间大小是4G,那么页表的大小就是1M。值得注意的是,页表是存在于内存中的,内存中页表的主要属性是可读,可写,可执行。

Linux内核中的内存管理

    内核以页(4K Byte)为单位进行管理。
  • 分配内存举例
    alloc _page(gfp_mask,order)
    ①流程
    ②gfp_mask
    ③order

系统调用

   Linux系统运行时,内核分为用户态和内核态。用户态下应用程序和内核程序是隔离的。系统调用是用户使用内核函数的媒介。
  • 具体实现:
    通过Exception,使得应用程序陷入内核中执行。
    例如:某应用程序想要调用另一个程序,一般可以使用exec系列的库函数。exec系列的库函数在ARM体系架构下,会产生SWI类型的exeception(异常),从而陷入内核,执行内核函数sys_execve—>do_execve,从而运行另一个程序。

内核线程

    内核线程是程序运行的主体。
  • 内核中只有线程,没有进程。因为内核代码、内存空间等资源只有1份,所以只有线程,没有进程。Linux系统中,内核线程是调度的主体,所以,内核线程拥有进程的一部分属性。
  • 线程的task_struct是控制内核线程运行的数据结构,存放了内核线程的关键信息和特征,包括了进程的优先级,堆栈信息,打开的文件句柄信息等。
  • 线程的调度解决的是确定运行主体的问题。
    3种调度方式:
    ①时间片轮转 SCHED_RR
    ②优先级 SCHED_PRI
    ③实时线程 SCHED_RT
  • 调度发生的时机。
    ①时钟中断时;
    ②Linux发生内核态和用户态相互切换时;
    ③Linux执行完信号时;

内核中的同步和线程间通信的方式

    内核线程是程序运行的主体。
  • 原子操作
    不可能被打断的基本操作。
  • 同步通信方式
    ①自旋锁 spin_lock
    ②信号量 (semaphore) up&down
  • 异步通信方式
    ①信号(signal)处理信号的函数在task_struct中指明。

中断

   从硬件上讲,中断是一个外部的电平信号。通过电平信号的高低告诉CPU中断的到来。
  • 中断处理的上半部。
    需要Linux内核暂时中断对其他外部硬件中断信号的响应。特点是时间短。在该时间点上,内核处理关键的,且能迅速完成的程序段。此程序段一定是不能等待其他条件发生,能迅速被内核处理的。
  • 中断处理的下半部。
    在上半部中来不及处理的,相对冗长的程序段。此程序段是需要等待其他程序运行结果,或者需要等待获取其他资源。

时钟和定时器管理

    从硬件上来讲,时钟是一种产生定时中断的电路,是中断的一种。主要用以记录系统运行时间;完成时间相关的统计功能,如CPU占用率等;
  定时功能,设定某个进程一段时间后完成某项任务。
  • RTC和System timer
    ① RTC (real time clock)实时时钟/硬件时钟/墙上时钟。RTC记录的是00:00:00 GMT,1 January 1970到当前经历的时间。属于CPU外围的与时钟相对独立资源。主要用于获取当前系统时间,设置系统时钟,硬件上的延迟。
    ②System timer用中断的方式设置高精度(微秒级)的延时和计算相对时间的。
    • tick&jiffies
      • tick即时钟中断的周期。
      • jiffies是一个全局变量,在64位操作系统中,其位64位的变量,记录了从上电开始,所经历的tick数。

文件系统

    Linux中“一切皆文件”。
  • 虚拟文件系统(VFS)
    Linux内核为了屏蔽具体的物理文件系统的差异,所产生的一个中间层。
  • 物理文件系统(ext4,yaffs2等)
    ①ext4最大的特点有完善的日志系统。
    ②yaffs2比较适合在NAND FLASH部署的文件系统。
    ③ubifs主要改善了文件速度慢的问题。
    ④btfs主要改善了文件碎片的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值