kernel

How to make a bootable disc (.iso) that loads a kernel (.elf)

爱⌒轻易说出口 提交于 2020-01-25 08:41:06
问题 I have made a very basic kernel and I want to make a bootable disc image that loads the kernel. I have tried to convert the kernel from .elf to .bin to .iso , but this has resulted in a non-bootable disc image. When I try to load the disc image into virtualbox or qemu, it notifies me that the disc image is in raw format and fails to load. I converted from .elf to .bin using objcopy -O binary kernel.elf kernel.bin and then attempted to convert to .iso using converters like poweriso, winiso and

K8S kubeproxy转发分析

佐手、 提交于 2020-01-25 07:54:31
环境信息 节点(node)IP:192.168.0.11 服务配置:3副本Nginx服务 服务CLUSTER-IP:10.254.198.92 服务CLUSTER PORT:80 服务NodePort:32110 如何处理访问Service的流量? 步骤1 将流量导入KUBE-SERVICES链 k8s创建的服务对外提供NodePort或ClusterIP的访问方式,而真正负责服务的是内部各pod(如172.16.0.2,172.16.0.3,172.16.0.4),kube-proxy就是负责外部与内部的转发工作,在使用IPTABLES做转发的模式下,nat表中KUBE-SERVICES链负责该工作,后续详述该链内容,首先分析下如何将访问Service的流量导入KUBE-SERVICES链。 本机通过NodePort或者ClusterIP访问service,经过IPTABLES的主要表、链如下: 表 链 NAT OUTPUT FILTER OUTPUT NAT POSTROUTING 外部通过NodePort访问service,经过IPTABLES的主要表、链如下: 表 链 NAT PREROUTING FILTER FORWARD NAT POSTROUTING 分析: 以上两类访问方式流量会分别经过NAT的OUTPUT链和PREROUTING 链

打开 Android 内核 pr_debug打印

梦想与她 提交于 2020-01-25 06:37:22
1.Android内核打印管理等级 在大家调试Linux内核时,想必会经常看到pr_err、pr_debug、pr_info 等打印函数,这些皆在kernel/msm-3.18/include/linux/printk.h 中定义。这里放上printk.h中部分节选。 这些想必看到都能懂,我们具体说下pr_debug这个打印如何使能,看到上面的截图可能许多人会问没看到pr_debug声明呀,别急,继续往下看 这里看到在pr_debug的声明上方有个宏的限制,也就是说我们要使能这个函数功能,就必须在你所调用的C文件中进行该宏DEBUG的定义 这里提供两个方式: 1.直接在当前C文件中定义。(简单粗暴) 2.在当前C文件同级目录下的Makefile中声明 以DMA为例,在drivers/dma/Makefile中定义了编译选项 ccflags-$(CONFIG_DMADEVICES_DEBUG) := -DDEBUG 其作用相当于在drivers/dma/所有子文件定义了宏#define DEBUG 当然,这个只是打开了宏的功能,确实能让pr_debug工作了,但是可能还会有小伙伴会说,为啥我这样做了还是看不到pr_debug的打印信息啊。当然这还是不够了,此时你需要了解内核还有一个打印级别,也就是说,你的打印级别高于这个默认级别才能看到。接下来看看这个等级是如何定义的。 kernel

深度学习与Keras实践|第三期:全连接层简介

我与影子孤独终老i 提交于 2020-01-25 00:57:31
1. 一个相对具体的模型——如何连接: 在第一期中,我们曾实现过如下的神经网络: 输入层 - Dense 4,relu,100 输出层 - Dense 5,softmax 这两个层都是全连接层,我们采用一种更加直观的表示方式展现这两个层是如何连接在一起的: 如图所示,输入层具有四个单元,输出层具有五个单元,作为全连接层,输入层的 每个单元都与下一层的所有单元相连 ,输出层的 每个单元也都与上一层的所有单元相连 。这就是全连接层直观的特点。 当这个模型用于多分类任务时,输出层的五个单元意味着最终的输出结果可以被划分到五个类别中的一个。 2.一个更具体的模型:全连接时到底做了什么? 在上面的模型中,我们看到了采用全连接层时模型的一个稍微具体的形式。但是,我们现在的模型仅仅展示给我们许多复杂的连接线(即使在我们的简单例子中,连接线也有20条之多),而一组数据信息在经过这些连接线、从一个处理层传递到下一个处理层时到底经历了什么,我们仍然不清楚。 实际上,输入的数据经历的过程可以用下面这个数学表达式来表示: output = activation(input · kernel + bias) 其中,activation是按逐个元素来计算的激活函数;kernel是由网络层创建的权值矩阵,权值矩阵将与输入该层的input矩阵进行点乘;bias是偏置量。下面,我们将具体解析这个数学表达式

学习数学

北城余情 提交于 2020-01-24 20:06:23
感觉数学似乎总是不够的。这些日子为了解决research中的一些问题,又在图书馆捧起了数学的教科书。 从大学到现在,课堂上学的和自学的数学其实不算少了,可是在研究的过程中总是发现需要补充新的数学知识。Learning和Vision都是很多种数学的交汇场。看着不同的理论体系的交汇,对于一个researcher来说,往往是非常exciting的enjoyable的事情。不过,这也代表着要充分了解这个领域并且取得有意义的进展是很艰苦的。 记得在两年前的一次blog里面,提到过和learning有关的数学。今天看来,我对于数学在这个领域的作用有了新的思考。 对于Learning的研究, Linear Algebra (线性代数) 和 Statistics (统计学) 是最重要和不可缺少的。这代表了Machine Learning中最主流的两大类方法的基础。一种是以研究函数和变换为重点的代数方法,比如Dimension reduction,feature extraction,Kernel等,一种是以研究统计模型和样本分布为重点的统计方法,比如Graphical model, Information theoretical models等。它们侧重虽有不同,但是常常是共同使用的,对于代数方法,往往需要统计上的解释,对于统计模型,其具体计算则需要代数的帮助。 以代数和统计为出发点,继续往深处走

linux内核配置与编译

扶醉桌前 提交于 2020-01-24 13:52:29
清除临时文件、中间文件和配置文件命令: make clean //remove most generated files but keep the config make mrproper //remove all generated files + config files make distclean //mrproper + remove editor backup and patch files 配置内核命令: make config:基于文本模式的交互式配置。 make menuconfig ARCH=i386:基于文本模式的菜单型配置。//“*”编译成内核(按y)(生成镜像),“m”编译成模块(按m)(生成点o文件),“ ”为不编译(按n) 配置完成之后会在当前文件夹下生成.config文件。 Linux内核提供了一系列可供参考的内核配置文件,位于 ./arch/$cpu/configs 。 编译内核: make zImage//获取详细信息make zImage V=1 make bzImage//获取详细信息make bzImage V=1 区别:在X86平台,zImage只能用于小于512K的内核 编译好的内核文件位于 ./arch/ $ cpu/boot/ (文件名为bzImage)。 编译内核模块: make modules 安装内核模块: make

How to know where I am booting from

∥☆過路亽.° 提交于 2020-01-24 06:18:47
问题 I have an application developed to run on multiple platforms where the boot disk is either '/dev/nftla1' or 'dev/hdc1' . The Grub bootloader has this information. But once the kernel takes over & the application starts running, it becomes irrelevant. But, in my application which is mainly in 'C' , I would like to know the source of boot because the way the files are accessed is different on these platforms. My question is: Is there a system command or any tricks that you know that could help

Linux内核模块编程

烂漫一生 提交于 2020-01-24 04:47:47
摘要 Linux内核模块编程的资料有些纷繁复杂,有的过于简单,有的过于庞杂,我试图用笔记的形式想读者展示怎样来进程Linux模块编程,力图做到简明扼要,这篇文章也是作为本人备忘的资料,所以有些地方过于简略是难免的。本来这篇文章的目的就是让用户知其然,至于所以然还是请参考相应的资料,其实最好的资料莫过于Linux Kernel Source。 适用范围: Linux Kernel >= 2.6.0 Linux模块简介 首先这个module不同于microkernel的module,microkernel的module是一个个的daemon进程,工作于用户空间,Linux的module只是一个内核的目标代码,内核通过执行运行时的连接,来把它整合到kernel中去,所以说Linux的module机制并没有改变Linux内核为monolithic OS本质,其module也是工作于内核模式,享有内核的所有特权。 至于为什么要引入Linux Kernle Module(一下简称LKM),我想至少有一下几点: 模块化编程的需要,降低开发和维护成本。 增强系统的灵活性,使得修改一些内核功能而不必重新编译内核和重启系统。 降低内核编程的复杂性,使入门门槛降低。 相关宏及头文件 LKM需要包含以下头文件:<linux/kernel.h> <linux/module.h> 需要定义以下宏:_

Ubuntu12.04 内核树建立

ⅰ亾dé卋堺 提交于 2020-01-24 00:36:22
先查看自己使用的内核版本 lin@lin-virtual-machine:~$ uname -r 3.2.0-23-generic 如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版本目录。 lin@lin-virtual-machine:~$ cd /usr/src lin@lin-virtual-machine:/usr/src$ ls linux-headers-3.2.0-23 linux-headers-3.2.0-23-generic 查看一下可一下载的源码包 lin@lin-virtual-machine:/usr/src$ apt-cache search linux-source linux-source - Linux kernel source with Ubuntu patches linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches 我这里选择所以“ linux-source- 3.2. 0 - Linux kernel source for version 3.2. 0 with Ubuntu patches ”直接 install lin@lin-virtual-machine:/usr/src$ sudo apt-get

为云而生,腾讯云服务器操作系统TencentOS内核正式开源

回眸只為那壹抹淺笑 提交于 2020-01-24 00:33:46
1月9日,腾讯云宣布将开源其服务器操作系统TencentOS内核。相比业内其它版本Linux 内核,腾讯云 TencentOS 内核在资源调度弹性、容器支持、系统性能及安全等层面极具竞争力,特别适合云环境。该系统的开源及应用可帮助客户大幅提升云上资源的利用效率,降低运营成本,同时获得更加安全可靠的业务运行环境。   TencentOS Kernel是继腾讯云物联网操作系统TencentOS tiny之后,TencentOS家族对外开源的第二款产品。TencentOS是腾讯云操作系统系列产品,由腾讯云架构平台部主力研发,覆盖数据中心、桌面系统、边缘设备和物联网终端等应用场景,提供可靠的云平台构建、接入和应用能力,帮助客户转化云的价值。TencentOS服务器操作系统在腾讯公司服役超过10年,覆盖公司全部自研业务,装机量过百万。2019年9月新开源的TencentOS tiny,是腾讯面向物联网领域开发的实时操作系统,具有低功耗、低资源占用、模块化、安全可靠等特点,可有效提升物联网终端产品开发效率,目前在Github上标星已达3.7k。   腾讯云操作系统团队表示:“将腾讯云服务器操作系统内核TencentOS Kernel开源,不仅可以与全球开发者共享腾讯云在服务器操作系统领域的技术和经验,还能够汲取全球服务器操作系统领域的优秀成果和创新理念,助力整体服务器操作系统生态的繁荣。”