Hello World的秘密,你知道吗?

企业动态
系统调用不同于普通的函数调用,是操作系统提供的接口,需要从用户态进入内核态才能完成,虽然没有发生进程的切换,但是在内核态依然要保存用户态的一些上下文,这样才能恢复用户态程序的运行。
[[285334]]

后记:系统调用不同于普通的函数调用,是操作系统提供的接口,需要从用户态进入内核态才能完成,虽然没有发生进程的切换,但是在内核态依然要保存用户态的一些上下文,这样才能恢复用户态程序的运行。C函数库在应用程序和操作系统之间起到了重要的桥梁作用,它不仅仅是像本文中的hello world那样做一个简单的中转,还可能会封装底层的系统调用,提供更高级的功能。比如存储空间的分配和回收,可以有很多算法(最佳适应,首次适应等), 但是Unix提供的系统调用是sbrk,只会按照字节数增加或减少进程地址空间,这对应用程序来说是不够的,这时候C函数库的封装函数malloc就可以发挥作用了。

文章中hello world的参数特别简单,放到寄存器中就可以了,如果参数特别多,就需要在内存中开辟一段区域,把参数放入其中,然后把这个区域的指针放入到寄存器中来传递。

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

戳这里,看该作者更多好文

 

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2023-12-12 08:41:01

2022-03-10 08:25:27

JavaScrip变量作用域

2020-08-07 16:18:38

JavaScriptC++Python

2021-10-14 06:52:47

算法校验码结构

2022-09-29 15:32:58

云计算计算模式

2023-12-20 08:23:53

NIO组件非阻塞

2024-04-30 09:02:48

2023-04-26 10:21:04

2024-04-07 00:00:00

ESlint命令变量

2024-02-19 00:00:00

Docker轻量级容器

2023-02-28 07:39:18

2019-01-07 13:01:08

Linux惊叹用法命令

2016-11-22 15:43:13

机房制冷发展史

2024-02-05 12:08:07

线程方式管理

2024-01-01 08:25:53

ViewSurface框架

2023-08-29 09:31:01

Scrapy网页爬虫

2014-05-30 10:23:15

乐跑手环智能手环运动手环

2021-10-28 16:19:37

物联网人工智能IoT

2020-10-08 18:58:46

条件变量开发线程

2017-10-16 13:45:04

点赞
收藏

51CTO技术栈公众号