13-01-24-->9

AT24CXX系列读写算法 本文详细的讲解了AT24CXX全部系列读写算法,包括寻址,按字节写,按页写,翻页写,按字节读,顺序读,随机读,并富有逻辑分析仪波形图例 阅读详情

终端登录

登录都经由内核中的终端设备驱动程序。

/etc/ttys(Linux 为/etc/inittab)文件,其中,每个终端设备都有一行(每行包括设备名和传递给getty程序的参数)。

UNIX系统传统的用户身份验证过程:当系统自举时,内核创建init(ID为1)进程。init使系统进入多用户状态。init进程读/etc/ttys,对每一个允许登录的终端设备,init调用一次fork,它所生成的子程序则执行(exec) getty程序。getty为终端设备调用open函数,以读、写方式将终端打开。getty输出“login:”,用户输入用户名后,getty工作就完成了。之后调用login。login可以执行多项工作。因为它得到了用户名,能调用gepwnam取得相应用户的口令文件登录项。之后调用getpass以显示提示“Passwd”,接着读用户键入的口令。它调用crypt将用户键入的口令加密,并与该用户在shadow口令文件中登录项的pw_passwd字段相比较。



login进程改变为登录用户的用户ID(setuid)并调用该用户的登录shell : execl("/bin/sh","-sh",(char *)0);

登录用户的登录shell开始运行。其父进程ID是init进程ID。


网络登录

init调用一个shell,使其执行shell脚本/etc/rc,由此shell脚本启动守护进程inetd(Linux下启动xinetd守护进程)。一旦此shell脚本终止,inetd的父进程就变成init。inted等待TCP/IP连接请求到达主机,而当一个连接请求到达时,它执行一次fork,然后生成的子进程执行适当的程序。e.g.telnetd进程。此进程打开一个伪终端设备,并用fork分成两个进程。父进程处理通过网络连接的通信,子进程则执行login程序。后续同上。。。



当通过终端或网络登录时,我们得到一个登录shell,其标准输入、输出和标准出差连接到一个终端设备或者伪终端设备。

这一登录shell是一个会话的开始,而此终端或伪终端则是会话的控制终端。


进程组

pid_t getpgrp(void); 返回调用进程的进程组ID.

每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。

int setpgid(pid_t pid, pid_t pgid);加入一个现有的组或者创建一个新进程组。


会话

会话(session)是一个或多个进程组的集合。

pid_t setsid(void);建立一个新会话。调用进程不能是一个进程组的组长,不然函数返回出错。为了保证不会发生此种情况,通常先调用fork,然后使其父进程终止,而子进程继续。因为子进程继承了父进程的进程组ID,而其进程ID是新分配的,两者不可能相等。所以子进程不会是一个进程组长。

pid_t getsid(pid_t pid);返回会话首进程的进程组ID。


控制终端



用来通知内核哪一个进程组是前台进程组,这样,终端设备驱动程序就能了解将终端输入和终端产生的信号送到何处。

tcgetpgrp(int); tcsetgpgrp(int,pid_t);


作业控制

允许在一个终端上启动多个作业(进程组),它控制哪一个作业可以访问终端,以及哪些作业在后台运行。一个作业只是几个进程的集合,通常是一个进程的管道线。

当作业已完成而且我们键入回车时,shell通知我们作业已完成。键入回车是为了让shell打印其提示符。shell并不在任何随意时刻打印后台作业的状态改变,它只在打印其提示符让用户输入新的命令之前才这样做。如果不这样处理,则当我们正输入一行时,它也可能输出。

能使终端驱动程序产生信号,并将他们送至前台进程组:1.中断Ctrl^c,产生SIGINT  2.退出字符 Ctrl^\,产生SIGQUIT 3.挂起字符 Ctrl^z 产生SIGTSTP

只有前台作业接受终端输入。后台要试图读终端,并不是一个错误,此时终端驱动程序检测到这种情况,并且向后台程序发送一个SIGTTIN信号,该信号会暂时停止后台作业,而shell则向用户发出这种情况通知。用户可用shell命令将此作业转为前台作业。这样作业置入前台进程组(tcsetpgrp),并将SIGCONT送给进程组,于是它就可以读终端。

如果后台试图输出到控制终端,通过允许or禁止选项来改变。e.g.stty命令。



孤儿进程组

即 该组中的每个成员的父进程要么是该组的一个成员,要么不是该组所属会话的成员。

程序清单9-1:因为在父进程终止后,进程组称为孤儿进程组。向新的孤儿进程组中处于停止状态的每一个进程发送挂断信号(SIGHUP),接着又向其发送继续信号(SIGCONT)


会话和进程组的实现:




YS13-3荧光管时钟设计 前几日,女朋友生日,问她想要啥礼物时,她提到说想要那种辉光管的自制时钟,然后上网一查,辉光管驱动电压挺高,而且管子还贵,于是折合了一下,用YS13-3荧光管代替辉光管来做时钟。废话不多说,下面介绍一下我的设计流程。 YS13-3设计思路与元器件选择原理图设计程序设计 设计思路与元器件选择 这里我采用的主控芯片是stm32f103C8T6。原因有几个,首先开发较快,用过stm32cubemx的都知道,开发效率上比传统标准库要快。其次便宜,而且好焊接。再然后是如何点亮荧光管的问题了。当初查找资料可是费了不少功夫 阅读详情

相关推荐

13DOF传感器与PIC24EP的高精度运动感知系统设计

传感器融合技术是现代导航与定位系统的核心,通过整合多源传感器数据(如加速度计、陀螺仪、磁力计等),能够显著提升系统的精度与鲁棒性。其基本原理是通过算法(如卡尔曼滤波)将不同传感器的优势互补,消除单一传感器的误差累积。在无人机飞控、机器人导航和工业自动化等领域,高精度运动感知系统尤为重要。本文介绍的13DOF传感器融合方案,结合PIC24EP微控制器的实时处理能力,实现了亚米级精度的定位导航。通过多物理量交叉验证(如气压计、紫外线传感器和激光测距模块),系统在室内外过渡场景中定位误差可控制在±0.8米内,比常

weixin_29189003的博客 349

进程关系

进程关系:终端登录: 当我们登录到UNIX系统时所执行的各个程序。在早期的UNIX系统中,用户用哑终端(用硬连接到主机)进行登录。终端或者 是本地的(直接连接)或者是远程的(通过调制解调器连接)。在这两种情况下,登录都经由内核中的终端设备驱动程序。例如, 在PDP-11上常用的设备是DH-11和DZ-11。因为连接到主机上的终端设备数是固定的,所以同时的登录数也就有了已知的上

angel的博客 271

WSL Ubuntu 24.04 GPU 加速环境完整安装指南

WSL Ubuntu 24.04 GPU环境安装指南 本文提供在WSL2 Ubuntu 24.04中配置GPU加速环境的完整方案。包含两种安装路径: 最小安装:仅需安装PyTorch/TensorFlow框架,通过pip自动获取CUDA运行时(推荐普通用户) 完整安装:包含系统CUDA Toolkit、cuDNN等全套开发环境(适合开发者) 关键说明: WSL2 GPU加速依赖Windows主机NVIDIA驱动,无需在WSL内安装GPU驱动 现代深度学习框架通过pip安装时会自动获取匹配的CUDA运行时库

桃李不言下自成蹊 646

android7.1添加F13到F24按键

说明 车机添加很多按键功能,系统需要自定义按键,来满足需求。 实现 zhoujy@TP:~/data/android/sc826_cn_01_00/msm_8953_git/frameworks$ git show 1b417fc8a116b9052d72f94cbf2983153ffea45e commit 1b417fc8a116b9052d72f94cbf2983153ffea45e Author: zhoujinyan <zhoujy@ibumobile.com&g...

zjy764219923的专栏 1024

解密TMS320F28377D双核工程中的内存分配艺术:从CMD文件到实战优化

本文深入解析TMS320F28377D双核DSP的内存管理艺术,从CMD文件配置到实战优化技巧。详细介绍了SARAM、GSRAM等内存类型的特性与配置方法,提供双核协同、性能优化及高级调试的实用方案,帮助开发者提升系统实时性和稳定性。

weixin_29190651的博客 663

STM32F103ZE精英板驱动ESP8266与DHT11构建物联网网关,实现乐联网温湿度数据实时监控

本文详细介绍了如何使用STM32F103ZE精英板驱动ESP8266与DHT11构建物联网网关,实现乐联网温湿度数据实时监控。从硬件选型、连接调试到乐联网平台配置和STM32程序开发,提供了完整的实现步骤和常见问题解决方案,适合物联网入门开发者参考。

weixin_30823001的博客 78

STM32F407单片机通用24CXXX读写程序(KEIL),兼容24C系列存储器(24C01到24C512),支持存储器任意地址跨页连续读写多个页

1.AT24CXXX容量   AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C32,AT24C64,AT24C128,AT24C256…不同的xxx代表不同的容量。 AT24CXXX bit容量 Byte容量 AT24C01 1Kbit 128Byte AT24C02 2Kbit 256Byte AT24C04 4Kbit 512Byte AT24C08 8Kbit 1024Byte

ba_wang_mao的专栏 1万+

ROS2机械臂实战:从基础控制到视觉抓取

本文详细介绍了ROS2机械臂从仿真环境搭建到视觉抓取的全流程实战指南。内容涵盖使用Gazebo搭建仿真环境、编写基础控制节点、集成视觉感知进行目标检测与坐标变换,并设计状态机逻辑实现自动化抓取。通过系统集成与联调,帮助开发者掌握ROS2机械臂开发的核心技能。

weixin_29197699的博客 449

超微服务器主板安装Ubuntu24.01,设置Nvidia显卡连接多显示器,并安装cuda和cudnn

机器:超微主板,带核显,有Nvidia显卡;目标:安装ubuntu系统,并使用nvidia显卡连接显示器。

HIT_AtlasChen的博客 1735

基于文件通信的QMT量化交易信号桥接方案设计与实现

在量化交易系统开发中,进程间通信(IPC)是连接不同计算模块、实现策略逻辑与交易执行解耦的关键技术。其核心原理在于允许运行于独立环境或进程的程序安全、可靠地交换数据。文件系统通信作为一种经典的IPC方法,因其实现简单、跨平台兼容性好且数据可持久化,在非高频场景下具有重要技术价值。它尤其适用于需要将外部复杂计算环境(如配备丰富数据科学库的Python环境)与专用交易终端(如迅投QMT)集成的应用场景。通过约定文件路径与数据格式,外部程序可将包含交易指令的JSON信号文件写入特定目录,而交易终端通过轮询或监听机

weixin_28678151的博客 419

YOLOv11缝合改进Conv | SAConv在YOLOv11中的应用可切换空洞卷积与性能提升(附代码)

在本篇文章中,我们将深入探讨如何通过引入**SAConv**(Switchable Atrous Convolution,可切换空洞卷积)来优化YOLOv11网络结构,特别是在卷积操作方面的创新。我们会解析SAConv的核心原理和架构设计。

一键难忘的博客 953

JDK的版本迭代(JDK9 - JDK24)持续更新中

持续关注JDK的版本迭代情况,并说明每个迭代版本的主要更新内容

一不小心的程序员 2272

随机森林遥感反演详细教程

通过这篇文章,我们展示了如何使用Python对筛选后的影响因子进行随机森林建模,并应用于遥感数据反演森林生物量的任务。该流程不仅可以提高预测精度,还能有效处理大规模的遥感数据,为生态监测和森林管理提供重要支持。

热爱分享,热爱记录 2952

How to install OpenJ9 JDK 17 on Ubuntu 24.04

How to install OpenJ9 JDK 17 on Ubuntu 24.04

在路上 1247

GPU 运维实战:H100/H800/B300 换卡与压测

(烧多久、看什么、什么算合格)。文末还给了一个能直接跑的验收判定脚本,三个真实场景的裁决输出都在。

老韩的Linux云计算架构师进阶之路 275

Python爬虫教程:抓取Android或iOS应用中的数据

随着智能手机的普及,移动应用程序已经成为我们生活中不可或缺的一部分。从社交媒体、在线购物到金融服务和健康管理,几乎所有领域都有相应的手机应用程序(App)服务用户。而这些应用程序通常会存储大量的数据,例如用户行为、产品信息、订单记录等。如果我们能有效地抓取这些数据,可以为数据分析、商业智能、用户行为分析等提供有力支持。本文将重点介绍如何使用Python爬虫技术抓取Android或iOS应用中的数据,尤其是如何从这些应用的后端接口、存储、或网页中提取数据。我们将探讨如何通过反向工程技术访问移动应用中的API接

2201_76125261的博客 802

GC9D01 tft lcd显示屏驱动之backlight实现

TFT LCD 背光实现与调试

哈哈哈哈哈哈哈哈哈 1354

老版QQ原生表情gif动态

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

nRF24L01实现小智音箱无线射频传输

本文深入探讨了nRF24L01在小智音箱系统中的应用,涵盖硬件设计、SPI通信、音频协议栈构建及抗干扰优化,实现低延迟无线音频传输。

weixin_35756690的博客 935

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Tools】Ubuntu24.04安装详细教程

本文介绍了Ubuntu 24.04 LTS(Noble Numbat)的安装指南。Ubuntu 24.04是2024年4月发布的最新长期支持版本,具有稳定的企业级特性。文章详细说明了系统配置要求、下载地址,并提供了基于VMware的完整安装步骤图解,包括创建虚拟机、设置参数和系统安装过程。同时介绍了安装后必要的软件工具如open-vm-tools、net-tools、vim、gcc等。该安装教程适合开发者和企业用户快速部署Ubuntu 24.04开发环境。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OpenEuler24升级openssh到9.9版本

本文详细介绍了如何升级 OpenSSL 和 OpenSSH 的步骤,并提供了相关注意事项。OpenSSL 升级至 3.5.0 的步骤包括下载安装包、解压、编译安装,并特别强调了启用 enable-mdc2 参数以避免 dnf 命令失效。OpenSSH 升级至 9.9 的步骤包括下载安装包、安装依赖、解压、编译安装,并提供了安装失败时的解决方案(修改配置文件)。最后,文章还提到非必须的 OpenSSL 动态链接库缓存更新步骤。整个过程需谨慎操作,避免远程升级导致 SSH 连接中断。

qq_26408545的博客 1386

x24Cxx系列EEPROM芯片C语言通用读写程序

在之前的3篇文章中,介绍了x24C01~x24C512的读写程序,相关文章如下: 1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序 2.AT24C01、AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序 3.AT24C04、AT24C08、AT24C16读写:AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序 4.AT24C32、AT24C64、AT24C128、AT24C256、AT24C512读写:AT24C32、A

wanglong3713的博客。 4383

新手的恶意代码分析记录(一)_Lab01-01

一、基本信息 样本基本信息: 样本名称:Lab01-01.dll 样本大小:163840 bytes MD5:290934C61DE9176AD682FFDD65F0A669 样本名称:Lab01-01.exe 样本大小:16384 bytes MD5:5A016FACBCB77E2009A01EA5C67B39AF209C3FCB 使用cff_Explorer 查看样本基本信息 使用查壳工具die查看,可以看出来,两个程序并没有加壳,并且是使用VC6.0编写的。 查看 Lab01-01.dll 程

qq_42689353的博客 1840

01系统安装-Ubuntu24.04安装

本文介绍如何安装 Ubuntu 操作系统,并在安装完成后进行网卡名称的修改以及root用户账户的启用和密码重置。

不屈的铝合金的博客 1万+

Android13 外置USB存储设备权限和用户组配置

近期在Android13的项目上碰到需求,要将挂载的外置USB存储设备的权限和用户组对齐Android9.0上的配置,花了些时间调试,遂作记录。Android13与Android9之前相隔几个版本,两者之间主要是用户组上有所区别。

一路寒风身如絮,命海沉浮客独行 1216

基于LVGL-micropython、ESP32-S3+GC9A01炫酷手表

想象一下,一块时尚、鲜艳的智能手表显示屏,不仅能精准显示时间,还能实时获取天气更新!这一切都由强大的微控制器和绚丽的显示屏驱动,结合 MicroPython 和 LVGL 图形库打造而成。科技爱好者们,系好安全带,我们将带你探索一个将硬件与软件完美融合的激动人心项目,打造一款既实用又吸睛的智能手表界面!

acldy833的博客 1649

常用标准电阻表 | E24标准电阻表

1.0、1.1、1.2、1.3、1.5、1.6、1.8、2.0、2.2、2.4、2.7、3.0、3.3、3.6、3.9、4.3、4.7、5.1、5.6、6.2、6.8、7.5、8.2、9.1,共24个基数值。E24系列标准电阻默认误差范围为±5%,丝印通常为3位,如68kΩ,丝印683。还有一种4位丝印的,误差范围通常为±1%,同为68kΩ,丝印6802。其标称阻值包括: 1.0、1.5、2.2、2.7、3.3、3.9、4.7、5.6、8.2,丝印一般为Rxx。如:R82,即0.82Ω。

yun0804的博客 5323
上一篇: 13-01-23-->8
下一篇: 13-01-25-->10
otuhacker
博客等级 码龄18年 21粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值