linux/操作系统
文章平均质量分 93
yuanlulu
做过嵌入式Linux开发、深度学习平台开发。擅长c++和python。
展开
-
Linux graphic subsytem(1)_概述[转]
图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux显示子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。转载 2022-10-23 11:55:35 · 228 阅读 · 0 评论 -
到底有几个鸿蒙OS? 谈谈我眼里的鸿蒙操作系统
目前鸿蒙是华为的一个大IP,其长远规划就是“理想鸿蒙”的样子。但是普通消费者拿着华为手机用着“AOSP鸿蒙”,却以为自己用的是“理想鸿蒙”。华为在营销上也混淆了“理想鸿蒙”和“AOSP鸿蒙”,导致招来很多人的反感。但是华为作为被美国精准狙击的公司,必须找退路,而且这个退路不是一朝一夕能建好的,所以推出了“AOSP鸿蒙”作为暂时的应敌之策,并对外宣称退路已经建好了,不怕美国制裁,保持消费者对华为的信心。但是私底下也在推进OpenHarmony,将来成熟后就能成为不惧制裁的底牌。结论就是。原创 2022-10-15 15:20:36 · 12113 阅读 · 19 评论 -
Linux终端传输二进制文件的属性设置
使用Linux的tty终端编程总有一种穿越的感觉,明显是“终端机”时代的产物。嵌入式中仅仅用到简单的串口功能,但是《unix环境高级编程》用了一章来讲终端IO,那么多功能很容易搞混。在此小结一下!Linux终端常用的模式有三种:以行为单位的, 对特殊字符进行处理的模式 (cooked mode)原始模式, 不以行为单位, 不对特殊字符进行处理 (raw mode)cbrea原创 2014-01-13 16:03:45 · 5906 阅读 · 0 评论 -
FB的一些概念
framebuffer的两个重要结构体:struct fb_fix_screeninfo { char id[16]; /* identification string eg "TT Builtin" */ unsigned long smem_start; /* Start of frame buffer mem */原创 2013-02-28 13:42:20 · 8978 阅读 · 0 评论 -
gettimeofday和xtime的定时精度
============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu版权没有,但是转载请保留此段声明============================================客户反映,gettimeofday获取的时间us部分总是零。自己修改测试代码有如原创 2010-11-20 13:05:00 · 6448 阅读 · 6 评论 -
sed命令的样式中使用变量
工作上需要将文本文件的某个配置信息替换掉,一直没有想到好的办法,因为我不知道怎么在sed的样式中使用变量。sed的样式使用单引号的话就没法展开变量。从网上搜了资料才知道,也可以使用双引号的,这样就可以自由使用变量了。使用双引号之后,sed变得异常强大。不多说,直接贴原码:#!/bin/sh file="./"oldname=$(cat $file/old_dev.c原创 2012-11-15 10:56:28 · 3813 阅读 · 0 评论 -
ARM Linux系统调用
下面的分析以2.6.34为例。内核部分ARM-Linux的系统调用列表定义在arch/arm/kernel/call.S中: * This file is included thrice in entry-common.S //entry-common.S将会包含这个文件。根据偏移量,获取函数的指针*//* 0 */原创 2012-04-20 15:52:47 · 6824 阅读 · 3 评论 -
直接操作Framebuffer测试液晶屏
自己写的一个液晶屏测试小程序,直接写frambuffer,总共四幅画面,如下所示:程序很简单,就是进行内存映射之后写frambuffer。这个程序是在华清远见的一个程序上改的,目前只支持16BPP的液晶屏。代码如下:#include #include #include #include #include #include int main(i原创 2012-04-25 09:33:04 · 7091 阅读 · 1 评论 -
flash_erase擦除NAND flash坏块失败
板子使用busybox文件系统,带了mtd-utils的工具,包括flash_erase。首先查看帮助信息:[root@M3250 ~]# flash_erase --hUsage: flash_erase [options] MTD_DEVICE Erase blocks of the specified MTD device.Specify a count of 0 to e原创 2012-03-10 15:25:31 · 26786 阅读 · 2 评论 -
主分区/扩展分区/逻辑分区MBR和DBR
从网上整理的知识,在这里汇总一下,具体的来源网页恕不写出。MBR(master boot record)即主引导记录,有时也称主引导扇区。位于整个硬盘的 0 扇区(硬盘的 0~62 即前 63 个扇区为保留扇区,目前只有 MBR 占用其中的第一个或前几个扇区),可以看作是硬盘的第一个扇区,通常只占用这一个扇区,如 XP 的 MBR,grub4dos占用 0~17 共 18转载 2012-02-29 22:47:46 · 8625 阅读 · 0 评论 -
bash shell启动配置脚本
bash shell有五种模式:1.交互模式(命令行模式下)2.非交互模式(即执行脚本)3.POSIX模式4.以sh名称调用5.受限模式交互式/非交互式当bash作为交互式login shell调用,或者使用--login参数作为非交互式shell调用,bash会顺次查找并执行以下脚本:/etc/profile~/.bash_profile原创 2012-02-29 16:03:59 · 6843 阅读 · 0 评论 -
linux内核中jiffies的回绕问题
============================================作者:yuanluluhttp://blog.csdn.net/yuanlulu版权没有,但是转载请保留此段声明============================================1。网上遇到的一个问题。先贴出来问题,再说解决方法。看“linux 内核设计与实原创 2010-11-18 20:07:00 · 5027 阅读 · 5 评论 -
system调用返回值
在linux下C语言中调用system执行可执行程序的过程中遇到了很多错误,一直在摸索。自己根据《Unix环境高级编程》上的内容总结了一下system执行的过程和可能的返回值。下图是一个jpg图片,使用yEd绘图软件制作。多说一句,yEd是一个非常好用的流程图绘制软件,linux下和windows下均可用。================原创 2012-02-24 18:58:47 · 3262 阅读 · 0 评论 -
~/.viminfo权限引起的vim无法记住上次编辑的位置(附vim配置文件)
现象:已经在~/.vimrc中增加了下面一行:au BufReadPost * if line("'\"") > 0|if line("'\"") 但是只有用sudo vim的时候才会记住上次编辑的位置,直接vim总是从第一行开始。原因:[yuanlulu@ubuntu: ~]$ll ./.viminfo -rw------- 1 root root 4558原创 2011-12-09 14:23:40 · 8442 阅读 · 1 评论 -
虚拟机安装ubuntu11.10使用share folders共享目录
在虚拟机中安装好ubuntu11.10之后,VMtools已经默认安装好了,可以在终端中按vm+tab查看:yuanlulu@ubuntu:~$ vmvmmouse_detect vmware-hgfsclient vmware-uservmstat vmware-hgfsmounter原创 2011-12-08 10:25:33 · 3787 阅读 · 1 评论 -
『已解决』expected expression before ‘struct’
<br /><br />编译一个应用程序,报以下错误:<br />[root@localhost 3250RTC]# make<br />gcc -o 3250rtc 3250rtc.c<br />3250rtc.c: In function ‘update_rtc’:<br />3250rtc.c:47: error: expected expression before ‘struct’<br />make: *** [3250rtc] Error 1<br /> <br />解决办法:<br />#i原创 2011-05-13 09:29:00 · 25883 阅读 · 4 评论 -
gcc的编译过程
大家都知道编译的四个步骤:预处理、编译、汇编链接。但是这些步骤都是由谁完成的呢,今天做了几个实验验证一下。(本人对编译和链接的原理不是很精通,以下内容是摸索的,难免出错。不要被我误导了)首先编写一个简单的C文件,比如"hello, world!",然后使用-v选项来编译它,这样它的编译步骤就可以显示出来了。[zlg@localhost gdbtest]$ gcc -v //显示gcc的版本信息Using built-in specs.Target: i386-redhat-linuxConfig原创 2011-05-10 18:38:00 · 2678 阅读 · 0 评论 -
snipMate安装后报错
<br />自己安装了 snipMate,启动vim后出现以下错误:<br />Warning in snipMate.vim: Snippet c) is already defined. See :h multi_snip for help on snippets with multiple matches.<br />Warning in snipMate.vim: Snippet date is already defined. See :h multi_snip for help on snipp原创 2010-11-22 13:41:00 · 4105 阅读 · 0 评论 -
关于嵌入式系统的启动
关于嵌入式系统的启动(SHARE FOR ALL)嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Linux内核调入内存之后,将权力转载 2009-12-29 13:03:00 · 834 阅读 · 0 评论