C程序的存储空间布局:
正文段:由CPU执行的机器指令部分,通常,正文段是可以共享的,所以即使频繁执行的程序在存储器中也只需有一个副本。通常,正文段只读,以防止程序由于意外而修改器自身的指令;
初始化数据段:也称作数据段,包含了程序中需明确赋初值的变量
非初始化数据段:也称作bss段,即符号开始的块
栈:
正文段:由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, 1991 | In 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 world | Because 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 ARM | is available on PA-RISC and Itanium machines |
File system support: | Ext2, Ext3, Ext4, Jfs, ReiserFS, Xfs, Btrfs format | jfs,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 date | A 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. |