冯俞琛 :Linux是我们的DNA

麒麟/linux桌面客户端终端SSH远程服务器及scp、sftp 上传文件步骤 在麒麟/Linux系统上,无需安装额外软件,可直接使用内置的ssh、scp、sftp等命令实现远程登录、指令执行及文件上传下载。通过终端输入ssh root@10.10.xx.xxx登录服务器,首次连接确认指纹后输入密码(盲打),即可操作。文件传输使用scp单文件/目录上传,或sftp交互式传输;也可在文件管理器中输入sftp://root@10.10.xx.xxx实现图形化拖拽。支持免密登录配置与断点续传的rsync,全面替代MobaXterm功能,高效安全。 阅读详情
“你可能不知道,美国最大的在线游戏厂商采用的就是Linux平台。”柏格立(上海)计算机科技有限公司(Pogo Linux Shanghai)总经理冯俞琛向记者介绍Linux的应用现状,“美国的一个客户曾向我们定制了基于Linux 64位操作系统的笔记本电脑,单台的价格就是3000美元。”正是坚信Linux会有美好的未来,美国柏格立计算机科技有限公司于2004年3月正式进入中国市场,落户上海。

   柏格立提供的产品种类很多,包括服务器、存储设备、工作站、数据机,但这些产品的一个共同点就是,全部是基于Linux平台。

  “我刚刚参加完美国的‘Linux World’展,许多服务器大厂都在宣场Linux,有的人甚至抛出了‘Linux NonStop’的口号。”冯俞琛意犹未尽,“由于这些大厂商的加入,Linux这块蛋糕会越做越大。但是,出于商业目的,这些厂商不可能放弃占市场份额80%~90%的Windows平台产品,因此有一个很耐人寻味的现象——虽然有的厂商在台上大力宣传Linux,但是翻开他们的产品广告,依然醒目地印着‘建议在Windows操作系统下运行’。”

  柏格立的另一个与众不同之处是,坚决不靠低价刺激销售。冯俞琛表示:“在实践中,我们会建议用户选择Linux,但绝不强迫。我们会通过不断引入最新的技术,以降低成本,提高性能,从而促进客户的购买。比如,采用SATA(串行ATA)磁盘。”

  冯俞琛坦言,2004年,公司并没有在销售量上设定很高的指标,今年的主要任务还是市场宣传和品牌推广,目的是让中国的用户了解柏格立的理念。在此基础上,柏格立会大力发展在中国的合作伙伴,主要是Linux操作系统厂商和系统集成商,并借助他们在国内的渠道和影响力,为用户提供专业的Linux产品和服务。
0033.Linux 系统调用 权限低,不能直接操作硬件、内核资源;拥有最高权限,系统调用就是切换这两种状态的入口。系统调用是用户态进程向内核态请求操作系统服务的,是用户程序和 Linux 内核之间的"门"。 阅读详情

相关推荐

三部对接 sora-2:OpenAI 最新视频模型快速接入指南

本文介绍OpenAI最新视频生成模型Sora-2的接入方案,重点解析其Chat格式调用功能。开发者可通过在提示词中嵌入"横屏/竖屏""时长""清晰度"等要求快速生成视频。文章分三部分:1)基础准备(环境配置与API密钥获取);2)核心调用(提供Python/Java示例代码);3)结果查询与优化建议。Sora-2支持多语言调用,简化了视频生成流程,适用于短视频、广告创意等场景。

2501_93565190的博客 3436

Linux 网络排障实战:工业边缘场景下的 ss 与 netsta

工业网关的网络问题 — 服务起不来、连接堆积、外联异常 — 大多能从 socket 状态入手定位。;netstat 属于已停止维护的 net-tools,本文仅作对照。从工程实战角度梳理连接排查的完整用法。

ZenovaEdgeOS的博客 439

数字锁相环的原理与FPGA实现

数字锁相环是锁相环电路的全数字实现。锁相环电路能够实现对输入信号的相位进行跟踪,进而在噪声中提取纯净的有用信号。以上就是今天要讲的内容,本文简单地介绍了锁相环的原理,然后,在Vivado仿真平台上,通过verilog做仿真验证。最终仿真结果能够实现锁定,但锁定时间较长,表明参数仍可做调整。

weixin_45857378的博客 8513

Linux输入输出重定向与用户管理精要

本文系统梳理了Linux输入输出与用户组管理核心内容。输入输出部分涵盖字符设备与块设备区别、文件描述符、重定向与管道机制,重点解析2>&1等易错点;用户管理部分详解3A安全机制、用户分类、配置文件及常用命令(如useradd、passwd、sudo),强调权限最小化与安全审计。全文突出实践应用,适用于系统运维与考试复习。

2301_80092853的博客 634

DSP28335做FFT傅里叶变换

1. 看了一下例程,居然没有FFT的例程,难道这个DSP28335不能做FFT吗?对了C2000系列是有C2000 ware这个库的。方便很多,不过目前不确定在C5000上运行的FFT能直接迁移到DSP28335上行不?测试了一下,是可以的,因为都是用的math.h,下面的一些正弦函数基本一样的 2. 硬件简介,其中DSP28335和TLV320AIC23B之间使用I2C接口进行寄存器配置,...

weixin_30390075的博客 3332

ArduPilot + Gazebo + Mavros + QGC + 遥控器:从仿真到实机的自主轨迹控制实践

本文详细介绍了基于ArduPilot、Gazebo、Mavros和QGC的无人机自主轨迹控制全流程实践。从仿真环境搭建、多终端协同配置,到遥控器集成与自主圆形轨迹算法实现,提供了完整的代码示例和实机迁移要点,帮助开发者快速掌握无人机自主控制技术。

corn8的博客 942

linux下面Kconfig简说depends on和select

关键字作用在你这段配置里的含义depends on门槛:条件不满足,选项不出现必须有 I2C、V4L2、MD6000 平台支持select强制:本选项开启,则被选项自动开启IMX178 开启时,自动打开 Media Controller 和 V4L2 Subdev API简单记:depends on管“我需不需要别人”select管“我开启了就顺手把别人拉上”。备注: 不会被看见,则不会被编译进去default nhelp+123。

hezhensheng007的专栏 198

Plot3d 网格数据格式

PLOT3D是一个计算机图形程序,旨在可视化计算流体力学的网格和解决方案。PLOT3D文件可以是ASCII, 也可是Fortran unformatted 或 C binary形式。PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件)。网格文件中可加入所谓的IBlank参数。

weixin_62592231的博客 3722

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 286

图神经网络实战(6)——使用PyTorch构建图神经网络

图数据集通常比简单的连接集合更加丰富,因为节点和边可以具有表示分数、颜色、单词等特征。包含这些额外信息在输入数据中对于生成最佳嵌入至关重要。在本节中,我们将使用 Cora 和 Facebook Page-Page 数据集,首先将它们视为表格数据集,观察香草神经网络在节点特征上的表现如何。然后,尝试在神经网络中加入拓扑信息,实现图神经网络 (Graph Neural Networks, GNN) 架构:一个同时考虑节点特征和边的简单模型。最后,我们将比较两种架构的性能。

盼小辉丶的博客 2万+

【DRAM存储器四十七】LPDDR5介绍--LPDDR5的低功耗技术之DVFS

讲述LPDDR5的DVFSC和DVFSQ的工作原理和要求

highman110的博客 904

Linux 学习 - 第十五周作业

与 2.4 步骤相同, 唯一差别是先装 docker, 再用 cri-dockerd 把 docker 适配成 CRI, 因为 v1.24 之后移除了内置的 dockershim。组件之间只有一条通道: 全部组件都 watch 或写入 kube-apiserver, 由 apiserver 落 etcd, 组件之间从不直接通信。设置 immutable: true 后不能修改, 只能删除重建。全程异步、watch 驱动, 没有任何组件去命令另一个组件, 这就是声明式架构的本质。

corey93的博客 191

Spring AI Alibaba实战训练营-14基于A2A协议智能体应用开发指南

本文介绍了基于A2A协议的智能体应用开发流程,主要包括客户端和服务端两个模块的实现。关键技术包括A2A通信协议、Nacos服务发现、Spring AI Alibaba框架和DashScope通义千问API。开发步骤涵盖环境准备(JDK17、Maven、Nacos)、项目创建、依赖配置(重点引入spring-ai-alibaba相关组件)以及Nacos和DashScope的核心配置。整个系统架构采用客户端通过Nacos发现服务端Agent,再调用阿里云AI服务的模式,实现了AI能力的解耦与复用。

program哲学 506

linux用phytool测试mdio接口的phy芯片

【代码】linux用phytool测试mdio接口的phy芯片。

qq_26074053的博客 201

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux rm 误删文件恢复实操教程

Linux使用rm删除文件时,并不会直接抹除磁盘上的数据,只是移除文件索引,让系统不再识别这块空间。只要没有写入新数据,原有扇区内容就会保留。新文件写入才有可能覆盖这些区域,一旦覆盖就很难找回。恢复的本质就是扫描磁盘,找到这些还存在、但索引丢失的数据条目,再把它们导出保存到其他分区。越早停止写入,恢复成功的概率越高。

海天数据恢复-winhex数据恢复教程 243

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Linux】35:应用层自定义协议和序列化

本文实现了一个基于TCP字节流的网络计算器,通过自定义协议(长度头+JSON)解决粘包问题。核心在于应用层协议设计:使用Jsoncpp进行序列化与反序列化,以“长度\r\nJSON报文\r\n”格式封装数据,确保读取完整性。服务端采用多进程模型(二次fork)处理并发请求,客户端循环输入并发送请求,服务端计算后返回结果。项目融合了Socket编程、多进程、策略模式日志、RAII锁等技术,完整演示了从底层通信到高层业务的全栈实现。

qq_62473190的博客 105

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Instabox 云端 Linux 虚拟机配置中文拼音输入法

Fcitx5 和拼音已安装、桌面会话加载了输入法环境变量、Fcitx 当前处于激活状态。在这次 Debian + XFCE 排查中,拼音本来已经安装;问题出在桌面会话没有正确加载变量,而且 Fcitx 需要再次激活。配置登录环境并执行后,当前输入法显示为pinyin,中文输入恢复正常。

binweisili的博客 136

第12篇:VXLAN协议深度解析——智算网络的二层隧道(附Linux实战抓包)

VXLAN突破传统VLAN 4094个隔离限制,通过MAC-in-UDP封装实现1600万虚拟网络(VNI),解决云数据中心和AI智算集群中二层跨三层、多租户隔离与虚拟机热迁移难题。其核心在于将二层帧嵌入IP网络,由VTEP负责封装/解封装,借助Underlay IP路由实现逻辑二层连通。实验验证了点对点VXLAN隧道搭建与Wireshark抓包解析,揭示了50字节封装开销及MTU调优必要性。结合RDMA与EVPN控制平面,VXLAN成为智算网络关键支撑技术。

cyf31的专栏 636

Windows 下 QEMU 搭建 ARM64 Linux 开发环境完整教程 | 保姆级步骤 + SSH 远程登录

本文针对嵌入式开发、跨架构软件测试、ARM Linux 学习的开发者,提供一套在 Windows x86 电脑上零成本搭建 ARM64 虚拟机的完整方案。全程使用开源工具,覆盖环境安装、系统部署、远程登录、性能优化全流程,新手可直接照着步骤操作。

wutu_csdn_blog的博客 317

嵌入式 Linux OOM Killer 触发逻辑与防误杀实战指南

本文深入解析嵌入式 Linux 下 OOM Killer 的触发机制,结合工业网关真实工程场景,提供从日志排查、内核参数调优到关键进程保护的完整落地方案,解决核心进程被误杀导致的业务中断问题。

嵌入式扫地僧 406

Linux 常用命令 + GCC 编译全流程详解

本文为Linux与C语言初学者打造的实战指南,涵盖命令行核心技能:从文件操作、权限管理到查找、进程控制、打包压缩,最终深入剖析GCC编译四阶段(预处理、编译、汇编、链接),揭示gcc hello.c -o hello背后的完整流程。通过建立“一切皆文件”“命令即程序”等心智模型,帮助读者在纯命令行下完成代码开发全闭环,真正理解底层机制,适用于面试准备、跨平台开发及服务器部署场景。

2401_88413914的博客 295

Linux FFmpeg深度解析之swr_convert调用流程与实战(四十六)

本篇目的:理解如何使用已初始化的SwrContext读取输入音频样本、生成输出样本并保留重采样延迟。音频转换不一定能在一次调用中输出与输入采样数按采样率比例换算出的全部样本。重采样器可能需要等待滤波数据,也可能因输出Buffer容量不足而暂存输入。会在内部维护转换状态,调用者需要按返回值处理实际输出,并在输入结束后刷新延迟数据。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

Android系统攻城狮 244

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 461

Linux FFmpeg深度解析之av_probe_input_format调用流程与实战(四十八)

本篇目的:理解如何根据选择输入格式,并通过构造WAV探测数据观察demuxer评分与格式返回结果。FFmpeg需要先确定输入数据属于哪种封装格式,才能选择对应的demuxer读取文件头和媒体包。接收调用者准备好的探测数据,遍历可用输入格式并返回匹配的。它只负责根据现有探测数据猜测格式,不负责从文件或网络读取数据,也不负责打开输入和解析媒体流。fill:#333;important;important;fill:none;color:#333;color:#333;important;

Android系统攻城狮 350

深入浅出聊聊 Linux 的 PageCache 与系统极致性能

本文深入浅出解析了 Linux PageCache 的核心机制,揭示其如何通过“延迟写、预读读”提升系统性能。以监控告警为切入点,阐明 free -h 中 buff/cache 并非真正占用,真正可用内存由 available 决定。结合 Kafka、Elasticsearch、MySQL 等实战场景,说明中间件如何依赖 PageCache 实现极致性能。强调不可手动清理缓存,并建议合理调优脏页参数,避免卡顿。最终指出:内存满≠危机,而是系统高效运行的体现。

小小默:进无止境 521

Linux 进程间通信(IPC)详解:从管道、进程池到共享内存、消息队列与信号量

本文依据《8. 进程间通信》课件的知识主线重新组织,对匿名管道、进程池、FIFO、System V 共享内存、消息队列、信号量、内核组织方式及 Shell 管道进行了展开。需要引用共享区里的其他位置时,可以保存相对于共享区起点的偏移量,由每个进程使用自己的起始地址计算。管道传递的是任务编号,工作进程根据任务表调用对应函数。本文沿着一条完整的实践路线展开:理解进程隔离,用匿名管道交换数据,用多条管道搭建进程池,再进入共享内存,补上同步与互斥,最后理解消息队列、信号量,以及内核如何统一管理这些对象。

2601_94861874的博客 235
上一篇: “漏波”病毒变种现身 能对付600种安全软件
下一篇: Firefox人气火红 能否取代龙头IE?
zcatlinux
博客等级 码龄22年 56粉丝 760原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值