社区
Linux/Unix社区
帖子详情
有写过内核系统调用例程的请进
tiger999
2003-09-14 02:51:42
我现要编写一套有关文件读取的内核系统调用。如open, read lseek close等。
VFS层已有。主要请教有关需要那些data structure.
...全文
35
2
打赏
收藏
有写过内核系统调用例程的请进
我现要编写一套有关文件读取的内核系统调用。如open, read lseek close等。 VFS层已有。主要请教有关需要那些data structure.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CoolQ
2003-09-21
打赏
举报
回复
是啊,头文件里写的明明白白
头文件的位置在/usr/src/linux-2.X/include里
litf
2003-09-21
打赏
举报
回复
建议看 LINUX的源代码
迷你版SQL2000服务器
【SA默认密码:593106】 使用环境: Windows OS(vista/win7/win8/xp/2000/2003) 不支持Windows 9x 软件功能: 1、MSSQL2000数据库服务开启、关闭控制; 2、基本数据库操作(改密码、数据库新建、删除、分离、附加、备份、恢复); 3、日志和连接信息,简易防火墙,自启动设置,计划任务(自动备份与执行)等。 注意事项: 1、本软件必须定义实例名和端口,本软件中的数据库无目录限制; 2、新建、附加和恢复数据库,这几项操作会将数据库保存或转移到本软件所在目录的DATA目录下,同时也会将数据库文件的物理文件名和逻辑名
进
行调整; 3、删除、分离数据库时,会自动清除目标数据库的用户连接; 4、防火墙仅仅是实现根据连入PC的网卡地址
进
行连接断开的操作,没啥用^_^; 5、计划任务只有在勾选时才会
写
入配置文件,在开启服务后才会读取并开启任务,如果计划任务中定义的数据库被删除或分离,任务会自动取消; 6、如果需要使用默认实例,
请
千万不要发布到有安装MSSQL且使用默认实例的机子上去,会造成目标机子上的MSSQL无法正常使用; 7、管理员帐号SA的默认密码是593106,第一次解锁时
请
输入这一密码,然后自行在数据库页修改密码。 使用方法: 运行程序》设置实例名》设置端口》开启。 如果需要让程序自动开启服务,
请
勾选自动开启,开机启动表示随OS启动。 与您的软件一起分发的方法: 1、运行本程序; 2、勾选 自动开启、开机启动和服务守护; 3、将本软件及附属文件一起打包
进
您的安装程序中。 您也可以将您需要分发的软件所用数据库直接附加或恢复到本软件中,从而省去恢复数据库的操作。 关于vista/win7/win8中UAC未禁用时无法开机自启动的情况,
请
按以下步骤解决: 1、运行本程序,设置好 实例名称和服务端口,勾选自动开启和服务守护; 2、打开 开始》控制面板》
系统
和安全》计划任务; 3、创建任务》常规》输入名称》勾选下面的 使用最高权限运行; 触发器》开始任务 选择 登录时》设置 选择 所有用户》高级设置 勾选 启用; 操作》操作 选择 启动程序》程序或脚本 选择 迷你SQL2000目录下的sql2k.exe; 4、以上设置完成后,点击 确定
进
行保存,然后就可以重启win7
进
行测试了。 分发时
请
不要包含本说明文件,增加您自定义的说明文本即可。 更新日志: *修正 +增加 -去除 ^调整 1.2.6 *还原数据库时,修正输入库名时点取消后没有中止还原等错误; +查询分析器添加语法高亮支持; *修正关闭服务时,有机率卡顿的现象,
进
行了优化处理; +在操作
系统
关闭时,自动停止服务,防止数据丢失。 1.2.5 +数据库页增加查看我的表功能菜单项,可管理视图、存储过程及自定义函数和查看表结构等; ^部分菜单及按钮增加图标,增加美观度; +内存管理页增加AWE开关,以解决部分电脑内存不足造成运行缓慢的问题,AWE功能也占内存。 1.2.4 ^选择开机启动时,会自动删除与软件关联的注册表项,防止变更实例名造成注册表残留,对于已登记开机启动,又直接删除了软件的,
请
手工删除注册表Run项中的残留; *修正部分win7
系统
下无法正常解锁的问题(
系统
无法访问127.0.0.1造成); *修正部分文字描述内容错误(漏字或多打字等)。 1.2.3 +数据库页面,集成外部工具“查询分析器”与“事件探查器”,系SQL自带程序,方便使用; -删除内置“查询分析”功能页; ^数据库页面,密码修改,允许任意字符,不再限制只能为0~9a~z了,但不允许为空; ^数据库
内核
升级至8.00.2305,开启AWE,支持大内存(超2G)及修复漏洞; +增加SQL Tips页,记录一些常用的SQL语句,方便查阅; ^标题栏解锁界面和密码修改页面
进
行调整,增加多语言支持。 1.2.2 *附加数据库时,修正输入库名时点取消后没有中止附加等错误; +增加面板锁,点击左上角的金锁,输入SA用户密码,输入正确则打开面板,否则隐藏面板,不限制开、关服务; +数据库页面,右键菜单增加打开文件目录,方便用户操作; +增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务时,关闭窗口会退出程序,开启服务时,关窗窗口则是隐藏; *附加数据库时,修正目标目录与源目录相同时无法附加的问题。 1.2.0 +增加托盘区菜单项“重启”,方便重启SQL服务; ^附加数据库文件时,将移动改为复制,原文件不会被删除; +计划任务在备份数据库后,自动清除旧备份,只保留最后5个备份(按文件,不按时间); *修正计划任务无法正确执行的问题,由皮肤引起的。 1.1.9 +增加win8的支持,增加皮肤以美化界面; +增加查询分析器,方便使用SQL操作数据库; +增加简体、繁体语言切换,方便港台及深圳用户使用。 1.1.8 ^计划任务中执行SQL语句变更为执行SQL脚本文件,支持GO分隔,方便执行复杂任务。 1.1.7 +配置文件中增加AppTitle字符串项,如果有输入内容,则在启动时会以该项的值为窗口标题;繁体用户
请
将配置文件保存为Unicode格式; *修正没有清除默认实例注册表项的问题。 1.1.6 +控制程序增加对指定消息的处理,方便用户控制迷你数据库,详见包内的“控制demo”
例程
。 1.1.5 +同目录下只允许启动一个EXE,互斥对象,不影响启用多实例; ^原“恢复”变更为“还原”,还原时显示默认的数据库名称; +显示数据库状态,在数据库页的右键菜单项上增加修复置疑和联机数据库功能项; +勾选默认实例时,先
进
行检测,如安装了MSSQL服务,则禁止勾选默认实例; +计划任务,备份计划处增加选择目录的图片按钮,方便操作。 1.1.4 ^调整关闭服务过程,等待所有SQL任务执行完毕后才会关闭服务,确保用户操的作完整性; +增加服务
进
程窗口的显示选项,可即可查看服务日志; ^优化启动时的部分设置,提高效率,减少资源占用。 1.1.3 *修正内存释放问题,旧版会造成内存递增。 1.1.2 ^计划任务、执行脚本、恢复和备份数据库时,不限制指令执行等待时间,以免超时; *修正部分文字内容的显示错误; +增加按计算机名和IP地址访问实例的参考连接字提示; *修正启动时的一个参数错误,解决日志勾选切换造成启动失败的问题。 1.1.1 ^优化提示信息,更加人性化,执行脚本时会显示正在执行第几个脚本文件; ^优化启动服务的代码,默认实例或指定实例运行时更加稳定; ^优化数据库页右键菜单显示,允许对
系统
库
进
行操作。 1.1.0 +增加同个目录只允许运行一个实例的自动处理; *修正开启服务过程中碰到异常时,没有修改实例状态的错误; +支持强制使用默认实例,也就是使用1433端口和空实例名。 ps:升级了tools目录下的makesql和runsql,均支持unicode,与MSSQL配合使用效果非常 不错的(makesql在2ccc.com上有源码可下载,增加表内容较多时自动添加GO分隔, 以免执行时报内存不足的错误) 1.0.9 *修正被部分杀软报毒的问题; *修正停止服务时没有清除标识,造成提示无法运行相同实例的错误。 1.0.8 ^调整窗口关闭事件,用户必须用托盘区的右键菜单退出程序; +加入vista/win7的UAC签名,运行程序时会自动
请
求提权; +开启服务前自动验证下有没有相同的实例在运行。 1.0.7 +数据库页增加收缩数据库和清除日志文件内容的右键功能项; +增加版本号显示,优化部分代码; +增加启动前自检,缺少文件时会有提示。 1.0.6 *修正附加和恢复数据库时,逻辑名处理不正确的问题。 1.0.5 ^备份数据库时使用完整备份,不再自动使用增量备份; *修正部分错误,优化代码以提高处理速度。 1.0.4 +增加服务守护,在服务被异常终止时,自动开启服务。 1.0.3 *连接与防火墙,防火墙列表增加与减少时的空数据项错误; *修正托盘区无法激活主窗口的问题; +增加多实例启动支持(复制多份,设置不同的实例名和端口即可启动多个实例); ^运行日志调整为50行滚动提示,供参考。 1.0.2 *附加数据库,日志文件路径未修改的错误; ^数据库列表,数据和日志文件的路径显示为绝对路径; +计划任务,增加自动备份和执行SQL语句的功能。
系统
调用
的概念及原理
系统
调用
与
内核
函数
内核
函数与普通函数形式上没有什么区别,只不过前者在
内核
实现,因此要满足一些
内核
编程的要求。
系统
调用
是用户
进
程
进
入
内核
的接口层,它本身并非
内核
函数,但它是由
内核
函数实现的,
进
入
内核
后,不同的
系统
调用
会找到相应的
内核
函数,这些
内核
函数被称为
系统
调用
的“服务
例程
”。 比如
系统
调用
getpid()实际
调用
的是服务
例程
sys_getpid(),也可以说,
系统
调用
getpid()是服务例...
Windows驱动开发系列之一:小白入门经典
Windows驱动程序开发比较复杂,我将带领大家一起领略
内核
模式下编程的奥妙。您将真正掌握
内核
编程的原理与技术,将技术水平提升一个档次,学会核心技术。您将掌握Windows驱动开发的基本技术;灵活应用IRP、IO堆栈、设备栈、派遣函数等;您将掌握Windows驱动的分层技术,了解WDM驱动的基本原理您将掌握Windows驱动开发中的各种回调
例程
:完成
例程
、取消
例程
、DPC
例程
、APC
例程
、等等。具体内容包括但不限于:Windows驱动开发小白入门,Windows
内核
架构与驱动开发的基本概念,VS2015+VMware(win10x64)双机调试驱动,Win10x64中安装WDM驱动,驱动程序的基本结构(NT,WDM),Windows内存管理,Windows
内核
函数,驱动程序的派遣函数,驱动程序的同步处理,IRP的同步,定时器,驱动程序
调用
驱动程序,分层驱动程序
Linux
内核
系统
调用
原理与实现
解决什么问题 Linux
系统
调用
主要是操作
系统
实现的应用编程接口,简单的说就是linux
内核
提供对外(对于应用程序)的接口函数,
进
程通过
调用
系统
调用
完成自身的功能。
系统
调用
在每个平台的实现方式都不同相同,例如x86通过int 0x80中断来实现,arm通过其它的指令实现。 具体原理与实现 1
系统
调用
过程 对于
内核
提供给应用程序的接口,例如open接口,在
内核
中有对应的一个函数sys_open. 我们在
内核
增加一个
系统
调用
,这里就是函数声明。 具体实现是通过
系统
调用
相关的辅助宏来定义的。
内核
中提供
linux-3.18
内核
系统
调用
1.
系统
调用
基本概念
系统
调用
是指就是函数
调用
,只是
调用
的函数是
系统
函数,处于
内核
态而已。用户在
调用
系统
调用
时会向
内核
传递一个
系统
调用
号,然后
系统
调用
处理程序通过此号从
系统
调用
表中找到相应的
内核
函数执行(也就是
系统
调用
服务
例程
), 2.
系统
调用
信息定义初始化 在arch/x86/kernel/syscall_64.c文件中定义并初始化了sys_call_table #define
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章