C程序存储空间布局--学习笔记

C程序的存储空间布局:
正文段:由CPU执行的机器指令部分,通常,正文段是可以共享的,所以即使频繁执行的程序在存储器中也只需有一个副本。通常,正文段只读,以防止程序由于意外而修改器自身的指令;

初始化数据段:也称作数据段,包含了程序中需明确赋初值的变量
非初始化数据段:也称作bss段,即符号开始的块
栈:

堆:位于非初始化数据段和栈之间




Size的用法:显示一个目标文件或者链接库文件中的目标文件的各个段的大小,当没有输入文件名时,默认为a.out。

NAME
       size - list section sizes and total size.

SYNOPSIS
       size [-A|-B|--format=compatibility]
            [--help]
            [-d|-o|-x|--radix=number]
            [-t|--totals]
            [--target=bfdname] [-V|--version]
            [objfile...]

DESCRIPTION
       The  GNU  size  utility lists the section sizes---and the total size---for each of the object or archive files
       objfile in its argument list.  By default, one line of output is generated for each object file or each module
       in an archive.

       objfile... are the object files to be examined.  If none are specified, the file "a.out" will be used.

OPTIONS
       The command line options have the following meanings:

       -A
       -B
       --format=compatibility
           Using one of these options, you can choose whether the output from GNU size resembles output from System V
           size (using -A, or --format=sysv), or Berkeley size (using -B, or --format=berkeley).  The default is  the
           one-line format similar to Berkeley's.

           Here is an example of the Berkeley (default) format of output from size:

                   $ size --format=Berkeley ranlib size
                   text    data    bss     dec     hex     filename
                   294880  81920   11592   388392  5ed28   ranlib
                   294880  81920   11888   388688  5ee50   size

           This is the same data, but displayed closer to System V conventions:

                   $ size --format=SysV ranlib size
                   ranlib  :
                   section         size         addr
                   .text         294880         8192
                   .data          81920       303104
                   .bss           11592       385024
                   Total         388392

                   size  :
                   section         size         addr
                   .text         294880         8192
                   .data          81920       303104
                   .bss           11888       385024
                   Total         388688

       --help
           Show a summary of acceptable arguments and options.

       -d
       -o
       -x
       --radix=number
           Using  one  of these options, you can control whether the size of each section is given in decimal (-d, or
           --radix=10); octal (-o, or --radix=8); or hexadecimal (-x, or --radix=16).  In  --radix=number,  only  the
           three  values  (8,  10,  16)  are  supported.   The total size is always given in two radices; decimal and
           hexadecimal for -d or -x output, or octal and hexadecimal if you're using -o.

       -t
       --totals
           Show totals of all objects listed (Berkeley format listing mode only).

       --target=bfdname
           Specify that the object-code format for objfile is bfdname.  This option may not be  necessary;  size  can
           automatically recognize many formats.

       -V
       --version
           Display the version number of size.

SEE ALSO
       ar(1), objdump(1), readelf(1), and the Info entries for binutils.

COPYRIGHT
       Copyright  (c)  1991,  92,  93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2003, 2004 Free Software Foundation,
       Inc.

       Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documen-
       tation  License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant
       Sections, with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the license is included  in  the
       section entitled ''GNU Free Documentation License''.



Linux

Unix

Development and Distribution:Linux is developed by Open Source development i.e. through sharing and collaboration of code and features through forums etc and it is distributed by various vendors such as Debian, Red Hat, SUSE, Ubuntu, GentuX etc.Unix systems are divided into various other flavors, mostly developed by AT&T as well as various commercial vendors and non-profit organizations.
Inception:Based on MINIX (a Unix-like system) and eventually after adding many features of GUI, Drivers etc, Linus Torvalds developed the framework of the OS that became LINUX in 1992. The LINUX kernel was released on 17th September, 1991In 1969, it was developed by a group of AT&T employees at Bell Labs and Dennis Ritchie. It was written in “C” language and was designed to be a portable, multi-tasking and multi-user system in a time-sharing configuration.
Cost:Linux can be freely distributed, downloaded freely, distributed through magazines, Books etc. There are priced versions for Linux also, but they are normally cheaper than Windows.Different flavors of Unix have different cost structures
Threat detection and solution:In case of Linux, threat detection and solution is very fast, as Linux is mainly community driven and whenever any Linux user post s any kind of threat, several developers start working on it from different parts of the worldBecause of the proprietary nature of the original Unix, users has to wait for a while, to get the proper bug fixing patch. But these are not as common.
Market share for Desktop PC:The market share of Linux is about 0.8%Less than 0.5 percent of the PC market.
GUI:Linux typically provides two GUIs, KDE and Gnome. But Linux GUI is optional.Initially Unix was a command based OS, but later a GUI was created called Common Desktop Environment.
User:Everyone. From home users to developers and computer enthusiasts alike.Unix operating systems were developed mainly for mainframes, servers and workstations. The Unix environment and the client-server program model were essential elements in the development of the Internet
Architectures:Originally developed for Intel's x86 hardware, ports available for over two dozen CPU types including ARMis available on PA-RISC and Itanium machines
File system support:Ext2, Ext3, Ext4, Jfs, ReiserFS, Xfs, Btrfs formatjfs,gpfs,hfs,ufs,xfs format
Usage:Linux can be installed on a wide variety of computer hardware, ranging from mobile phones, tablet computers and video game consoles, to mainframes and supercomputers.The UNIX operating system is used in internet servers and workstations
Security:Linux has had about 60-100 viruses listed till dateA rough estimate of UNIX viruses is between 85 -120 viruses reported till date.
Text mode interface:BASH (Bourne Again SHell) is the Linux default shell. It can support multiple command interpreters.Originally the Bourne Shell. Now it's compatible with many others including BASH.
What is it?:Linux is an example of Open Source software development and Free Operating System (OS).Unix is an operating system that is very popular in universities, companies, big enterprises etc.
Price:Free but support is available for a price. 
Compatibility:Can coexist with virtually any operating system out there. 
Manufacturer:Linux kernel is developed by the community. Linus Torvalds oversees things. 
Processors:Dozens of different kinds.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惹不起的程咬金

来都来了,不赏点银子么

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值