- 笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel与内核进程
TeYiToKu
X210嵌入式学习整理笔记汇编linux嵌入式硬件c语言单片机
kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head.text的段。内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kernel启动由bootloader进行构建
- 3.2.6 盘古开天地start_kernel
aspirestro三水哥
InterruptPipelinelinuxarmIPIPEXenomai
点击查看系列文章=》InterruptPipeline系列文章大纲-CSDN博客3.2内核初始化(盘古开天地)3.2.1内核初始化的神话3.2.2从头(Head)开始3.2.3从头初始化到身体3.2.4宇之内存的空分复用3.2.5宙之CPU的时分复用3.2.6盘古开天地start_kernel3.2.6盘古开天地start_kernel__primary_switched最后义无反顾的跳转到了st
- qemu调试kernel启动(从第一行汇编开始)
无人知晓万事万物
qemu玩转linuxlinuxlinux启动调试qemuarm64
一、背景大部分qemu调试kernel都是讲解从start_kernel开始设置断点,然后开启调试;但是我们熟悉linux启动流程的伙伴肯定知道,在start_kernel之前还有一段汇编,包括初始化页表及mmu等操作,这部分如何调试呢?二、如何从第一行代码开始调试?无论是gdb调试还是JTAG调试,其中最重要的一个就是加载symbols到正确的物理/虚拟地址(是物理地址还是虚拟地址取决于此时mm
- 《ARM Linux内核源码剖析》读书笔记——0号进程(init_task)的创建时机
katerdaisy
linux学习服务器嵌入式硬件
最近在读《ARMLinux内核源码剖析》,一直没有看到0号进程(init_task进程)在哪里创建的。直到看到下面这篇文章才发现书中漏掉了set_task_stack_end_magic(&init_task)这行代码。下面这篇文章提到:start_kernel()上来就会运行set_task_stack_end_magic(&init_task)创建初始进程。init_task是静态定义的一个进
- Openwrt linux 启动流程
仗剑天涯 回首枉然
linux运维服务器
OpenWRT启动流程内核启动过程:【/init/mian.c】Uboot-->start_kernel()-->rest_init()-->kernel_thread(kernel_init)-->kernel_init_freeable()初始化过程:LinuxKernel(kernel_init)-->/etc/preinit-->/sbin/init-->/etc/preinit,/sbi
- Linux 内核启动流程
行稳方能走远
正点IMX6ULL系统移植linux运维服务器
目录链接脚本vmlinux.ldsLinux内核启动流程分析Linux内核入口stext__mmap_switched函数start_kernel函数rest_init函数init进程看完Linux内核的顶层Makefile以后再来看Linux内核的大致启动流程,Linux内核的启动流程要比uboot复杂的多,涉及到的内容也更多,因此本章我们就大致的了解一下Linux内核的启动流程。链接脚本vml
- 安装根文件系统
yunsongice
疯狂内核之系统初始化structcachenullsystemfilelist
5.12安装根文件系统start_kernel下步是另一个重要的函数,678行的vfs_caches_init,用于初始化VFS那些数据结构的slab缓存,来自fs/dcache.c:2355void__initvfs_caches_init(unsignedlongmempages)2356{2357unsignedlongreserve;23582359/*Basehashsizesonava
- Linux内核调试环境搭建及start_kernel实验
书gogo
linux运维ubuntu
1.下载并解压源码sudoaptinstallaxelaxel-n20https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.34.tar.xzxz-dlinux-5.4.34.tar.xztar-xvflinux-5.4.34.tarcdlinux-5.4.342.配置内核选项makedefconfig#Defaultcon
- 基于VSCode的linux内核调试环境搭建和start_kernel调试分析
塔塔开~
linuxvscode
基于VSCode的linux内核调试环境搭建和start_kernel调试分析1.linux内核调试环境搭建1.1安装开发工具1.2下载内核源代码1.3配置内核选项1.4编译和运行内核1.5制作根文件系统2.通过vscode进行调试分析2.1vscode终端输入以下代码2.2在linux-5.4.34文件夹创建.vscode文件夹并将配置文件放入2.3设置start_kernel断点,通过vsco
- 使用VSCode对Linux内核调试环境搭建和start_kernel跟踪分析
weixin_45067165
linuxvscodeubuntu
使用VSCode对Linux内核调试环境搭建和start_kernel跟踪分析一、环境搭建二、制作内存根文件系统三、VSCode断点分析1.安装vscode和相关插件2.调试分析一、环境搭建安装build-essentialsudoaptinstallbuild-essentialbuild-essential是一个Ubuntu的软件包,包含了GNU编译器集合,GNU调试器,和其他编译软件所必需的
- 基于VSCode的Linux内核调试环境搭建以及start_kernel跟踪分析
Airs61
ubuntulinux服务器
目录1、安装开发工具2、下载内核源代码3、配置内核选项4、编译和运行内核5、制作根文件系统6、配置VSCode调试Linux内核7、跟踪分析Linux内核的启动过程1、安装开发工具sudoaptinstallbuild-essentialsudoaptinstallqemu#installQEMUsudoaptinstalllibncurses5-devbisonflexlibssl-devlib
- Linux内核中进程的初始化
青衫客36
Linuxlinux运维服务器
分析start_kernel时应该会注意到Linux内核0号进程的初始化,见init/main.c。set_task_stack_end_magic(&init_task);其中,init_task为第一个进程(0号进程)的进程描述符结构体变量,它的初始化是通过硬编码方式固定下来的。除此之外,所有其他进程的初始化都是通过do_fork复制父进程的方式初始化的。1号和2号进程的创建是start_ke
- 进程管理(六)--进程初始化
奇小葩
进程管理linux操作系统内核进程管理
我们知道,对于内核提供的进程管理子系统,将来肯定是要运行各种各样的进程,对于我们做Linux内核开发的同学来说,大家熟悉Linux下有3个特殊的进程,其主要内容如下:Idle进程(PID=0),本章主要讲解进程0是什么?Init进程(PID=1),本章主要讲解进程1是什么?kthread(PID=2),本章主要讲解进程2是什么?1进程初始化(0号进程)内核的启动从入口函数start_kernel(
- Linux内核启动中驱动初始化过程
biaotai
Linux驱动linux驱动开发运维
Linux内核启动时驱动初始化过程一、驱动模块存在形式内核源码树中大部分内容为驱动代码,那么在内核中,每个驱动在内核编译时都是以如下的两种形式进行编译的:1、静态编译将驱动编译进内核;2、动态编译将驱动编译成可以在需要时动态插入到内核中的模块,即ko的形式;二、内核初始化时驱动是如何加载的?整体的流程为先加载内嵌驱动,后加载模块形式的驱动;1、内嵌驱动加载start_kernel中会去创建1号进程
- arm linux kernel 从入口到start_kernel 的代码分析
xiaohuoxiaoer
linux
Linux系统启动过程分析(主要是加载内核前的动作)经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究。这当中就包括系统的启动流程、文件系统的组成结构、基于动态库和静态库的程序在执行时的异同、协议栈的架构和原理、驱动程序的机制等等。本人在综合了现有网上大家智慧的基础上,结合对2.6.32的内核代码的研读,基于CentOS6.0系统对Linux的启动流程做了些分析。由于才疏学
- 内核初始化的过程
key_3_feng
Linuxlinux
内核的启动从入口函数start_kernel()开始。在init/main.c文件中,start_kernel相当于内核的main函数。打开这个函数,你会发现,里面是各种各样初始化函数XXXX_init。在操作系统里面,先要有个创始进程,有一行指令set_task_stack_end_magic(&init_task)。这里面有一个参数init_task,它的定义是structtask_struc
- Linux设备驱动和设备匹配过程
多云转晴,适合debug
Linux内核驱动linux驱动开发
Linux设备驱动和设备匹配过程1.设备驱动匹配简述2.重点结构体介绍2.1`structdevice`2.2`structplatform_device`2.3`structplatform_driver`2.4`structdevice_driver`3.`device`端发起匹配:3.1流程图3.2`start_kernel`时候解析设备树3.2.1`start_kernel`3.2.2`s
- Linux ARMv8 异常向量表
RopenYuan
ARM64_V8V9linux运维服务器
http://blog.chinaunix.net/uid-69947851-id-5830546.html本章接着《Linux内核启动》部分讲解,我们知道了在进入start_kernel之前,通过指令adr_lx8,vectors;msrvbar_el1,x8设置了异常向量表,那么异常向量表的结构是怎么样的呢?在armv8中,每个异常的向量地址不再是4字节,而是0x80字节,可以放更多的代码在向
- Linux内核4.14版本:ARM64的内核启动过程(二)——start_kernel
风雨兼程8023
嵌入式一些知识start_kernel
目录1.rest_init2.init进程(kernel_init)2.1kernel_init_freeable2.1.1do_basic_setup2.1.2prepare_namespace(挂载根文件系统)2.2run_init_processstart_kernel里面调用了大量的函数,每一个函数都是一个庞大的知识点,如果想要学习Linux内核,那么这些函数就需要去详细的研究。本篇文章只
- linux的start函数,介绍Linux内核函数Start_kernel()的功能
天猪飞翔
linux的start函数
Start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置。这些动作有的是公共的,有的则是需要配置的才会执行的。在start_kernel()函数中,输出Linux版本信息(printk(linux_banner))设置与体系结构相关的环境(setup_arch())页表结构初始化(paging_init())使用"arch/alpha/kernel/entry.S"中的入
- linux的start函数,linux start_kernel()函数全解析
Project Moto
linux的start函数
一位大师级的人物写的,不看要后悔的哟!!如果以为到了c代码可以松一口气的话,就大错特措了,linux的c也不比汇编好懂多少,相反到掩盖了汇编的一些和机器相关的部分,有时候更难懂。其实作为编写操作系统的c代码,只不过是汇编的另一种写法,和机器代码的联系是很紧密的。start_kernel在/linux/init/main.c中定义:asmlinkagevoid__initstart_kernel(v
- ARM Linux启动流程-start_kernel阶段
o倚楼听风雨o
linux启动流程linuxstart-kern
start_kernel的主要功能start_kernel()函数是内核初始化C语言部分的主体。这个函数完成系统底层基本机制,包括处理器、存储管理系统、进程管理系统、中断机制、定时机制等的初始化工作。分析所在文件:init/main.c内核版本:linux-3.14.28start_kernel流程介绍1、voidlockdep_init(void)有些体系结构有自己的start_kernel也会
- linux3.10系统start_kernel初始化流程详解(一)
oqqYuJi12345678
linuxstart_kernel系统初始化linux初始化初始化流程
下面从start_kernel开始分析一下linux3.10内核在s3c2440cpu上面的整个初始化流程:(1)lockdep_init();是个空函数,定义在include/linux/lockdep.h中(2)smp_setup_processor_id();这个设置对称处理器的函数对2440来说没有太大意义,源码在arch/arm/kernel/setup.c中:void__initsmp
- linux内核start_kernel分析
Stone_lu。
Cortex-A8
经历了跟体系结构密切相关的汇编代码之后,就可以进入C语言编写的结构无关的代码了。这个入口的函数是start_kernel函数,它主要更进一步地初始化系统相关的内容,以便系统进入一种服务状态,提供一种虚拟机的服务,提供各种API调用的服务。在start_kernel函数里,需要非常注意的是里面初始化函数的顺序,这些初始化函数不能随便调换初始化顺序,否则就会导致系统运行出错。asmlinkagevoi
- kernel启动流程-start_kernel的执行_7.arch_call_rest_init
HZero.chen
#KernelStart
目录1.前言2.arch_call_rest_init|--rcu_scheduler_starting|--kernel_thread(kernel_init,NULL,CLONE_FS)|--tsk=find_task_by_pid_ns(pid,&init_pid_ns);|--set_cpus_allowed_ptr(tsk,smp_processor_id())|--numa_defau
- kernel启动流程-start_kernel的执行_2.setup_arch
HZero.chen
#KernelStartkernelstart
目录1.前言2.setup_arch(&command_line)2.1init_mm2.2globalmapping2.3early_fixmap_init2.4early_ioremap_init2.5setup_machine_fdt2.6jump_label_init2.7parse_early_param2.8arm64_memblock_init2.9paging_init2.10ac
- 【linux kernel】start_kernel详解系列之【setup_arch】
iriczhao
小生聊【linuxkernel】linuxkernellinuxARMC语言设备树
start_kernel详解系列之【setup_arch】文章目录start_kernel详解系列之【setup_arch】一、开篇二、setup_arch函数分析(2-1)配置处理器(2-2)设置machine_desc结构变量参数和machine_name字符串(2-3)设置init_mm结构的参数(2-4)备份命令行参数(2-5)设置linux启动早期参数(2-6)页表初始化(2-7)请求标
- 【linux kernel】start_kernel函数的早期操作
iriczhao
小生聊【linuxkernel】linuxarm开发linux内核linuxkernelstart_kernel
一、开篇(注)本文源码基于linux内核版本:4.1.15。在start_kernel()函数的开始处,定义了两个变量:char*command_line;char*after_dashes;第一个表示指向内核命令行的指针,第二个用于包含parse_args()函数的结果,该函数解析带有name=value形式参数的输入字符串,查找特定的关键字并调用正确的处理程序。接着,start_kernel(
- Linux内核启动分析(二)——start_kernel
Stephen_Lu_Fahai
Linux内核linuxkernelkernel
在前一篇对head.S的分析中,我们知道内核启动的第一阶段的是处理u-boot传进来的机器id,由此来判断内核是否支持这个CPU以及该单板。而head.S最后跳到start_kernel这函数中作进一步的处理。分析如下:一、start_kernel在start_kernel这个函数中首先进行一系列的初始化,咱们就先不去具体分析每一个初始化函数,主要看最后两行的的setup_arch和setupc_
- Linux 之 start_kernel() 下的 setup_arch()
1710orange
linux2.4项目学习与搭建linux运维服务器
2.Linux之start_kernel()2.1setup_arch()2.1.1show_memory_map()voidshow_memory_map(){uint32_tmmap_addr=((multiboot_t*)glb_mboot_ptr)->mmap_addr;uint32_tmmap_length=((multiboot_t*)glb_mboot_ptr)->mmap_leng
- html页面js获取参数值
0624chenhong
html
1.js获取参数值js
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = windo
- MongoDB 在多线程高并发下的问题
BigCat2013
mongodbDB高并发重复数据
最近项目用到 MongoDB , 主要是一些读取数据及改状态位的操作. 因为是结合了最近流行的 Storm进行大数据的分析处理,并将分析结果插入Vertica数据库,所以在多线程高并发的情境下, 会发现 Vertica 数据库中有部分重复的数据. 这到底是什么原因导致的呢?笔者开始也是一筹莫 展,重复去看 MongoDB 的 API , 终于有了新发现 :
com.mongodb.DB 这个类有
- c++ 用类模版实现链表(c++语言程序设计第四版示例代码)
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T>
class Node
{
private:
Node<T> * next;
public:
T data;
- 最近情况
麦田的设计者
感慨考试生活
在五月黄梅天的岁月里,一年两次的软考又要开始了。到目前为止,我已经考了多达三次的软考,最后的结果就是通过了初级考试(程序员)。人啊,就是不满足,考了初级就希望考中级,于是,这学期我就报考了中级,明天就要考试。感觉机会不大,期待奇迹发生吧。这个学期忙于练车,写项目,反正最后是一团糟。后天还要考试科目二。这个星期真的是很艰难的一周,希望能快点度过。
- linux系统中用pkill踢出在线登录用户
被触发
linux
由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍所以需要有时踢出指定的用户
1/#who 查出当前有那些终端登录(用 w 命令更详细)
# who
root pts/0 2010-10-28 09:36 (192
- 仿QQ聊天第二版
肆无忌惮_
qq
在第一版之上的改进内容:
第一版链接:
http://479001499.iteye.com/admin/blogs/2100893
用map存起来号码对应的聊天窗口对象,解决私聊的时候所有消息发到一个窗口的问题.
增加ViewInfo类,这个是信息预览的窗口,如果是自己的信息,则可以进行编辑.
信息修改后上传至服务器再告诉所有用户,自己的窗口
- java读取配置文件
知了ing
1,java读取.properties配置文件
InputStream in;
try {
in = test.class.getClassLoader().getResourceAsStream("config/ipnetOracle.properties");//配置文件的路径
Properties p = new Properties()
- __attribute__ 你知多少?
矮蛋蛋
C++gcc
原文地址:
http://www.cnblogs.com/astwish/p/3460618.html
GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。
__attribute__ 书写特征是:
- jsoup使用笔记
alleni123
java爬虫JSoup
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.3</version>
</dependency>
2014/08/28
今天遇到这种形式,
- JAVA中的集合 Collectio 和Map的简单使用及方法
百合不是茶
listmapset
List ,set ,map的使用方法和区别
java容器类类库的用途是保存对象,并将其分为两个概念:
Collection集合:一个独立的序列,这些序列都服从一条或多条规则;List必须按顺序保存元素 ,set不能重复元素;Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的
- 杀LINUX的JOB进程
bijian1013
linuxunix
今天发现数据库一个JOB一直在执行,都执行了好几个小时还在执行,所以想办法给删除掉
系统环境:
ORACLE 10G
Linux操作系统
操作步骤如下:
第一步.查询出来那个job在运行,找个对应的SID字段
select * from dba_jobs_running--找到job对应的sid
&n
- Spring AOP详解
bijian1013
javaspringAOP
最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。例如,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。
1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用
- [Gson六]Gson类型适配器(TypeAdapter)
bit1129
Adapter
TypeAdapter的使用动机
Gson在序列化和反序列化时,默认情况下,是按照POJO类的字段属性名和JSON串键进行一一映射匹配,然后把JSON串的键对应的值转换成POJO相同字段对应的值,反之亦然,在这个过程中有一个JSON串Key对应的Value和对象之间如何转换(序列化/反序列化)的问题。
以Date为例,在序列化和反序列化时,Gson默认使用java.
- 【spark八十七】给定Driver Program, 如何判断哪些代码在Driver运行,哪些代码在Worker上执行
bit1129
driver
Driver Program是用户编写的提交给Spark集群执行的application,它包含两部分
作为驱动: Driver与Master、Worker协作完成application进程的启动、DAG划分、计算任务封装、计算任务分发到各个计算节点(Worker)、计算资源的分配等。
计算逻辑本身,当计算任务在Worker执行时,执行计算逻辑完成application的计算任务
- nginx 经验总结
ronin47
nginx 总结
深感nginx的强大,只学了皮毛,把学下的记录。
获取Header 信息,一般是以$http_XX(XX是小写)
获取body,通过接口,再展开,根据K取V
获取uri,以$arg_XX
&n
- 轩辕互动-1.求三个整数中第二大的数2.整型数组的平衡点
bylijinnan
数组
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ExoWeb {
public static void main(String[] args) {
ExoWeb ew=new ExoWeb();
System.out.pri
- Netty源码学习-Java-NIO-Reactor
bylijinnan
java多线程netty
Netty里面采用了NIO-based Reactor Pattern
了解这个模式对学习Netty非常有帮助
参考以下两篇文章:
http://jeewanthad.blogspot.com/2013/02/reactor-pattern-explained-part-1.html
http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf
- AOP通俗理解
cngolon
springAOP
1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和 我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而 已。 2.为什么用aop&nb
- cursor variable 实例
ctrain
variable
create or replace procedure proc_test01
as
type emp_row is record(
empno emp.empno%type,
ename emp.ename%type,
job emp.job%type,
mgr emp.mgr%type,
hiberdate emp.hiredate%type,
sal emp.sal%t
- shell报bash: service: command not found解决方法
daizj
linuxshellservicejps
今天在执行一个脚本时,本来是想在脚本中启动hdfs和hive等程序,可以在执行到service hive-server start等启动服务的命令时会报错,最终解决方法记录一下:
脚本报错如下:
./olap_quick_intall.sh: line 57: service: command not found
./olap_quick_intall.sh: line 59
- 40个迹象表明你还是PHP菜鸟
dcj3sjt126com
设计模式PHP正则表达式oop
你是PHP菜鸟,如果你:1. 不会利用如phpDoc 这样的工具来恰当地注释你的代码2. 对优秀的集成开发环境如Zend Studio 或Eclipse PDT 视而不见3. 从未用过任何形式的版本控制系统,如Subclipse4. 不采用某种编码与命名标准 ,以及通用约定,不能在项目开发周期里贯彻落实5. 不使用统一开发方式6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函
- Android逐帧动画的实现
dcj3sjt126com
android
一、代码实现:
private ImageView iv;
private AnimationDrawable ad;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout
- java远程调用linux的命令或者脚本
eksliang
linuxganymed-ssh2
转载请出自出处:
http://eksliang.iteye.com/blog/2105862
Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)
使用步骤如下:
1.导包
官网下载:
http://www.ganymed.ethz.ch/ssh2/
ma
- adb端口被占用问题
gqdy365
adb
最近重新安装的电脑,配置了新环境,老是出现:
adb server is out of date. killing...
ADB server didn't ACK
* failed to start daemon *
百度了一下,说是端口被占用,我开个eclipse,然后打开cmd,就提示这个,很烦人。
一个比较彻底的解决办法就是修改
- ASP.NET使用FileUpload上传文件
hvt
.netC#hovertreeasp.netwebform
前台代码:
<asp:FileUpload ID="fuKeleyi" runat="server" />
<asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上 传" />
- 代码之谜(四)- 浮点数(从惊讶到思考)
justjavac
浮点数精度代码之谜IEEE
在『代码之谜』系列的前几篇文章中,很多次出现了浮点数。 浮点数在很多编程语言中被称为简单数据类型,其实,浮点数比起那些复杂数据类型(比如字符串)来说, 一点都不简单。
单单是说明 IEEE浮点数 就可以写一本书了,我将用几篇博文来简单的说说我所理解的浮点数,算是抛砖引玉吧。 一次面试
记得多年前我招聘 Java 程序员时的一次关于浮点数、二分法、编码的面试, 多年以后,他已经称为了一名很出色的
- 数据结构随记_1
lx.asymmetric
数据结构笔记
第一章
1.数据结构包括数据的
逻辑结构、数据的物理/存储结构和数据的逻辑关系这三个方面的内容。 2.数据的存储结构可用四种基本的存储方法表示,它们分别是
顺序存储、链式存储 、索引存储 和 散列存储。 3.数据运算最常用的有五种,分别是
查找/检索、排序、插入、删除、修改。 4.算法主要有以下五个特性:
输入、输出、可行性、确定性和有穷性。 5.算法分析的
- linux的会话和进程组
网络接口
linux
会话: 一个或多个进程组。起于用户登录,终止于用户退出。此期间所有进程都属于这个会话期。会话首进程:调用setsid创建会话的进程1.规定组长进程不能调用setsid,因为调用setsid后,调用进程会成为新的进程组的组长进程.如何保证? 先调用fork,然后终止父进程,此时由于子进程的进程组ID为父进程的进程组ID,而子进程的ID是重新分配的,所以保证子进程不会是进程组长,从而子进程可以调用se
- 二维数组 元素的连续求解
1140566087
二维数组ACM
import java.util.HashMap;
public class Title {
public static void main(String[] args){
f();
}
// 二位数组的应用
//12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。
public static void f(){
- 也谈什么时候Java比C++快
windshome
javaC++
刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。
你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?
我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C