13 os从业人员

尚未进行身份认证

我要认证

os从业人员,研究方向主要涉及linux操作系统、并行实时系统。个人邮箱wdjjwb@163.com

等级
TA的排名 8w+

fuchsia 编译 报git log unknown date format unix的解决

fuchsia 编译 报git log unknown date format的解决方式: 升级git到最新版本,使用gIt log --help 查看date参数支持unix即可

2019-08-05 01:05:51

zircon基本调测功能

zircon目前支持的基本调测功能zircon shell下执行log_listener2 .在zircon shell中执行alt+tab 切换控制台(仅支持x64)zircon shell 执行 dlog命令。支持dlog -p 进程号 查看指定进程打印如果以pave方式启动,可以在服务器端使用./out/build-zircon/tools/loglistener工具查看单板打印...

2019-04-29 10:03:51

Zircon中新增系统调用

zircon系统调用是有一个生成框架,类似于linux的SYSCALL_DEFINE宏。系统调用号由系统调用在syscalls.abigen文件中的定义顺序决定,实际上是依次递增的。在相关文件定义后,会自动申明zx_name的函数,用户之间使用的是这个zx_name的函数。添加自定义系统调用修改syscalls.abigen文件,增加自定义系统调用格式,包括系统调用名字,参数,返回值,格式...

2019-04-28 18:13:30

Printk实现流程

一、初步结论1.如何把字符串放到缓存,如何从缓存写到串口。首先是在关中断,关调度,保持logbuf_lock自旋锁的情况下,将数据格式化后,放到printk_buf缓冲区,其大小为1K,也就是说,每次printk只能打印1K的内容。格式化完毕后,将数据再复制到log_buf缓冲区。由于在向串口输出的过程中,会暂时打开自旋锁,所以在SMP下,其他CPU可能继续向log_buf中存放数据,并由驱动...

2019-03-15 16:24:01

The Performance of µ-Kernel-Based Systems

Hermann Härtig - Michael Hohmuth - Jochen Liedtke* - Sebastian Schönberg - Jean WolterDresden University of TechnologyDepartment of Computer ScienceD-01062 Dresden, Germanyemail: l4-linux@os.inf.t...

2019-03-13 20:32:16

l4 微内核

近几年来,L4微内核越来越受到大家的关注,研究和使用L4的人越来越多,但是对于L4介绍的中文资料仍然很少,本文试图收集各种基于L4的操作系统项目,以帮助大家研究学习只用。基本上,各种L4系统可以分为两种,一种是dead system,另外一种就是live system。对于dead system,如果已经丧失了研究的意义,那么也不会收入本列表当中。 关于L4系统,一般来讲,目前公认的L4系统有2...

2019-03-13 20:11:59

linux kernel内核slab内存泄露debug经验

打开内核的SLUB DEBUG选项+CONFIG_SLUB_DEBUG=y+CONFIG_SLUB_DEBUG_ON=y观察slabinfocat /proc/slabinfo启动后记录下slabinfo。运行一段时间,再观察slabinfo。找到增长比较大的slab。打开slab traceecho 1 > /sys/kernel/slab/<leakin...

2019-03-13 19:33:51

linux smp原子操作

原子操作:就是在执行某一操作时不被打断。linux原子操作问题来源于中断、进程的抢占以及多核smp系统中程序的并发执行。对于临界区的操作可以加锁来保证原子性,对于全局变量或静态变量操作则需要依赖于硬件平台的原子变量操作。因此原子操作有两类:一类是各种临界区的锁,一类是操作原子变量的函数。对于arm来说,单条汇编指令都是原子的,多核smp也是,因为有总线仲裁所以cpu可以单独占用总线直到指令...

2019-03-13 19:28:32

Linux内核页表

一. Linux地址空间ARM的32位系统共支持4G的内存空间,其中0-3G为用户空间,3G-4G是内核空间,ARM采用2级页表,32位地址空间ADDRESS分别为 PGD|PTE|12Bits, 在内核代码中分别为PGD 11位,PTE 9 位,页内地址12位;但是在MMU系统中对于ARM的二级分页设置分别为PGD 12位,PTE 8位,页内地址为12位。在内核代码层次虽然是11位,但...

2019-02-26 20:13:00

ARMV8 用户态DMA cache一致性问题和解决

原因:dma和cpu都有操作内存的能力,dma操作内存不通过cpu和cache,即cpu cache感知不到dma对内存的操作因此cpu和dma合作时,就会存在cpu cache和内存的一致性问题,原因是dma对内存操作无法被cache感知。当然如果给dma的内存是no cache的,cpu不会使用cache,也就不存在相关问题。如果给dma的是带cache内存,那么cpu访问的时候就需要...

2019-02-19 15:46:57

ld 和参数说明

本文档介绍GNU连接器ld的2.14版本.本文档在GNU自由文档许可证下发行.在"GNU自由文档许可证"一章中有关于本许可证的一份拷贝.概述‘ld’把一定量的目标文件跟档案文件连接起来,并重定位它们的数据,连接符号引用.一般,在编译一个程序时,最后一步就是运行’ld’.'ld’能接受连接命令语言文件,这是一种用AT&T的连接编辑命令语言的超集写成的文件,用来在连接的整个过程中提...

2019-01-18 10:53:15

c++符号表解析

约在20世纪70年代以前,编译器编译源代码产生目标文件时,符号名与相应的变量和函数的名字是一样的。比如一个汇编源代码里面包含了一个函数foo,那么汇编器将它编译成目标文件以后,foo在目标文件中的相对应的符号名也是foo。当后来UNIX平台和C语言发明时,已经存在了相当多的使用汇编编写的库和目标文件。这样就产生了一个问题,那就是如果一个C程序要使用这些库的话,C语言中不可以使用这些库中定义的函数和...

2019-01-10 14:59:43

枚举变量 enum

不能将非枚举量赋给枚举变量,那么能不能将枚举量赋给非枚举变量呢?如:int a=Monday;这是允许的,因为枚举量是符号常量,这里的赋值编译器会自动把枚举量转换为int类型。另外枚举还有一种少见的用法是 enum { one ,two ,three}; 就是不指定一个名字,这样我们自然也没法去定义一些枚举类型了。此时就相当于static const int one = 0;这样定义三个常量一...

2019-01-09 15:16:20

od 修改windows窗口

https://www.xuebuyuan.com/964461.html?mobile=0

2018-08-28 10:56:23

vmlinux 和普通elf文件的差别 linux kernel加载简述

vmlinux其实也是一个elf格式文件,它和普通elf是有些区别的。linux下可执行程序格式是elf的。elf格式的文件中有一个Program Headers,这个数据结构告诉 程序加载器,应该如何把 这个elf文件加载到虚拟地址空间中去执行。elf格式还有一个数据结构是Section Headers,这个不是用于程序加载,是用于编译、链接的。 因此gcc -c也可以生成目标代...

2018-07-21 15:32:12

ELF文件格式简介

https://blog.csdn.net/gx19862005/article/details/53350032

2018-07-21 14:58:56

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别以下是上述协议的简单介绍: BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以B...

2018-07-19 11:14:20

Linux NO_HZ_FULL NO_HZ 框架实现分析

解决一个问题重要的是了解问题的领域知识和相关背景,本文的目的是介绍linux内核的NO_HZ_FULL相关领域知识,以便涉及相关问题时候能更容易上手。 简单的说linux NO_HZ_FULL的作用是消除Linux内核不必要的周期时钟,提高系统的性能或者节省能耗。NO_HZ需要内核高精度时钟框架的支持。NO_HZ有几种选择,NO_HZ_IDLE是在CPU IDLE的时候关掉该CPU的周期tick...

2018-07-12 16:35:29

linux 后台clocksource_watchdog 线程的启动条件

如果启动参数没有设置tsc=reliable,系统认为tsc时钟源需要检查后能被使用 2.检查的方法是启动clocksource_watchdog加入时钟源的时候,如果tsc时钟源不是reliable,则会在执行list_add(&cs->wd_list, &watchdog_list);,即将时钟源加入watchdog_list链表。 而启动watchdog的条...

2018-07-04 14:13:47

计算机优化的一些随想

Wolpert and Macready 在 1997 年在优化领域中提出的 No Free Lunch Theorems(NFL),可以简单理解为:针对某一具体域内的所有优化问题 Q,经过 m 步迭代之后达到目标函数给定值的所有可能性的累加和是相等。 周志华老师在其《机器学习》一书中引申到机器学习领域:“针对某一域的所有问题,所有算法的期望性能是相同的”其实在计算机优化中上面的道理非常普遍...

2018-07-03 16:58:21

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 分享达人
    分享达人
    成功上传6个资源即可获取