当前位置:首页 » 操作系统 » linuxdo

linuxdo

发布时间: 2022-07-17 17:48:57

linux下 while["$x"-1e 10];do的意思是什么

当x这个变量小于等于10的时候,继续循环。做do与done之间的工作。

❷ linux内核中有很多dowhile语句,试着分析有何作用

在linux内核跟进程虚拟内存有关的数据结构主要有两个:structmm_struct与structvm_area_struct,至于两个之间关系,你可以参见内核源码,因为是作业,我就点到此了。

❸ do和linux系统哪个好

do 是什么系统?
如果是 dos ,那么 还是 linux好

不过 linux比 dos要复杂

你到底要做什么用呢?

❹ 看Linux内核源代码时候出现很多类似do {xxxx} while(0)的用法,到底有什么用

do{ } while() 是先执行一次再判断条件。所有每当引用这个宏时,操作就回执行这个do{ }一次,而且只执行一次!这样能很好的避免在宏展开是出错。
例如这样一段代码: #define haha(a,b) do{strcpy(a,b); c += 1;} while(0)
如果定义成这样 #define haha(a,b) strcpy(a,b); c += 1; 意思一样,但是不行!因为如果在一个if语句中引用这个宏就回出现问题。假设:
if(a)
haha(a,b);
else
do_something_else();
经过预处理后,代码成为这样:
if(a)
strcpy(a,b); c += 1;
else
do_something_else();

gcc编译这段代码时会出错,因为gcc认为if语句在strcpy()以后就结束了,但是又遇到一个else!如果把haha(a,b)和do_something_else()对换一下位置,编译没有问题,但是问题更严重了,因为不管条件是否满足,c+=1都会执行一次。

你可以自己验证,在define定义中加上{ }号还是会有问题。相比之下,在任何情况下do-while语句都不会出现问题。

❺ linux中while/do/done用法,

#!/bin/bash

echo "Enter password:"

read TRY

COUNTER=1

while [ "$COUNTER" -lt 5 -a "$TRY" != "secret" ]; do

echo "Here we go again"

COUNTER=$(($COUNTER+1))

read TRY

done

[ "$TRY" != "secret" ] && echo "error!"

❻ linux下检测内存的命令 do pmap

用 man pmap 查看帮助,
pmap - report memory map of a process
-x extended Show the extended format.
可见,pmap可用来获取一个指定进程的内存映射表,-x 选项的含义是指明以详细格式显示这些信息。

tail -1 就是提取所以这些pmap返回信息的最后一行(tail就是尾巴的意思啊)。你可以试试在命令行里敲 pmap -x 13894 这个命令,回显信息的最后一行就是total的内存统计信息。

用一个while循环来不断检测,其实就是在一直监视着13894这个进程的内存占用情况。

❼ 什么是linux他的作用又是什么

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

作用:

1、它能运行主要的UNIX工具软件、应用程序和网络协议。

2、它支持32位和64位硬件。

3、Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。


(7)linuxdo扩展阅读:

linux特性:

1、完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。

2、完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

3、多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

4、良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

5、支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。

❽ linux0.11版本中,关于函数do_timer的疑问

void do_timer (long cpl){
...
fn = next_timer->fn;
next_timer->fn = NULL;
next_timer = next_timer->next;
(fn)();
...
}

这个函数中的函数指针是在函数void add_timer(long jiffies, void (*fn)(void))中添加的。这个函数是供内核使用的,用户空间的函数是不能调用add_timer的,也就是说 do_timer (long cpl)函数中的函数指针只会指向内核里面的函数。
(我去看了linux0.11的源码,用的地方确实只有
Floppy.c (kernel\blk_drv): add_timer(2,&transfer);
Floppy.c (kernel\blk_drv): add_timer(ticks_to_floppy_on(current_drive),&floppy_on_interrupt);
Sched.c (kernel):void add_timer(long jiffies, void (*fn)(void))
Sched.h (include\linux):extern void add_timer(long jiffies, void (*fn)(void));

所以的你的“内核不能直接访问用户空间函数问题”是不存在的。

我也是看到了http://bbs.chinaunix.net/thread-3727536-1-1.html这个帖子才想到的。
刚开始学这个,可能说的不对,多包涵。

❾ linux下的命令都是干什么用的

前三个和最后一个是两个类型。前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的所有内容。所以exec()系列函数经常在前三个函数使用之后调用,来创建一个全新的程序运行环境。Linux用init进程启动其他进程的过程一般都是这样的。
下面说fork、vfork和clone三个函数。这三个函数分别调用了sys_fork、sys_vfork、sys_clone,最终都调用了do_fork函数,差别在于参数的传递和一些基本的准备工作不同。可见这三者最终达到的最本质的目的都是创建一个新的进程。在这里需要明确一下,Linux内核中没有独立的“线程”结构,Linux的线程就是轻量级进程,换言之基本控制结构和Linux的进程是一样的(都是通过struct task_struct管理)。
fork是最简单的调用,不需要任何参数,仅仅是在创建一个子进程并为其创建一个独立于父进程的空间。fork使用COW(写时拷贝)机制,并且COW了父进程的栈空间。
vfork是一个过时的应用,vfork也是创建一个子进程,但是子进程共享父进程的空间。在vfork创建子进程之后,父进程阻塞,直到子进程执行了exec()或者exit()。vfork最初是因为fork没有实现COW机制,而很多情况下fork之后会紧接着exec,而exec的执行相当于之前fork复制的空间全部变成了无用功,所以设计了vfork。而现在fork使用了COW机制,唯一的代价仅仅是复制父进程页表的代价,所以vfork不应该出现在新的代码之中。在Linux的manpage中队vfork有这样一段话:It is rather unfortunate that Linux revived this specter from the past. The BSD man page states: "This system call will be eliminated when proper system sharing mechanisms are implemented. Users should not depend on the memory sharing semantics of vfork() as it will, in that case, be made synonymous to fork(2)."
clone是Linux为创建线程设计的(虽然也可以用clone创建进程)。所以可以说clone是fork的升级版本,不仅可以创建进程或者线程,还可以指定创建新的命名空间(namespace)、有选择的继承父进程的内存、甚至可以将创建出来的进程变成父进程的兄弟进程等等。clone和fork的调用方式也很不相同,clone调用需要传入一个函数,该函数在子进程中执行。此外,clone和fork最大不同在于clone不再复制父进程的栈空间,而是自己创建一个新的。
关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html

热点内容
iis配置php5 发布:2025-01-21 14:08:19 浏览:273
凯叔讲故事为什么联系不到服务器 发布:2025-01-21 13:56:50 浏览:386
linux镜像文件下载 发布:2025-01-21 13:34:36 浏览:217
百度云破解解压 发布:2025-01-21 13:33:50 浏览:896
冰箱压缩机拆卸视频 发布:2025-01-21 13:33:50 浏览:963
压缩空气体积 发布:2025-01-21 13:27:21 浏览:472
百度地图存储位置 发布:2025-01-21 13:26:28 浏览:90
搬砖脚本怎么写 发布:2025-01-21 13:19:06 浏览:716
感动人物拍摄脚本 发布:2025-01-21 13:09:12 浏览:681
插件编程用 发布:2025-01-21 13:04:07 浏览:217