New/Usr/Src/Cmd/Mdb/Common

Total Page:16

File Type:pdf, Size:1020Kb

New/Usr/Src/Cmd/Mdb/Common new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 1 new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 2 ********************************************************** 642 return (DCMD_USAGE); 21346 Thu Feb 18 08:40:37 2016 new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 644 if (interesting) { 6583 remove whole-process swapping 645 if (sobj != NULL || excl_sobj != NULL || ********************************************************** 646 tstate_str != NULL || excl_tstate_str != NULL) { ______unchanged_portion_omitted_ 647 mdb_warn( 648 "stacks: -i is incompatible with -[sStT]\n"); 583 /*ARGSUSED*/ 649 return (DCMD_USAGE); 584 int 650 } 585 stacks(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) 651 excl_sobj = "CV"; 586 { 652 excl_tstate_str = "FREE"; 587 size_t idx; 653 } 589 char *seen = NULL; 655 if (caller_str != NULL) { 656 mdb_set_dot(0); 591 const char *caller_str = NULL; 657 if (mdb_eval(caller_str) != 0) { 592 const char *excl_caller_str = NULL; 658 mdb_warn("stacks: evaluation of \"%s\" failed", 593 uintptr_t caller = 0, excl_caller = 0; 659 caller_str); 594 const char *module_str = NULL; 660 return (DCMD_ABORT); 595 const char *excl_module_str = NULL; 661 } 596 stacks_module_t module, excl_module; 662 caller = mdb_get_dot(); 597 const char *sobj = NULL; 663 } 598 const char *excl_sobj = NULL; 599 uintptr_t sobj_ops = 0, excl_sobj_ops = 0; 665 if (excl_caller_str != NULL) { 600 const char *tstate_str = NULL; 666 mdb_set_dot(0); 601 const char *excl_tstate_str = NULL; 667 if (mdb_eval(excl_caller_str) != 0) { 602 uint_t tstate = -1U; 668 mdb_warn("stacks: evaluation of \"%s\" failed", 603 uint_t excl_tstate = -1U; 669 excl_caller_str); 604 uint_t printed = 0; 670 return (DCMD_ABORT); 671 } 606 uint_t all = 0; 672 excl_caller = mdb_get_dot(); 607 uint_t force = 0; 673 } 608 uint_t interesting = 0; 674 mdb_set_dot(addr); 609 uint_t verbose = 0; 676 if (module_str != NULL && stacks_module_find(module_str, &module) != 0) 611 /* 677 return (DCMD_ABORT); 612 * We have a slight behavior difference between having piped 613 * input and 'addr::stacks'. Without a pipe, we assume the 679 if (excl_module_str != NULL && 614 * thread pointer given is a representative thread, and so 680 stacks_module_find(excl_module_str, &excl_module) != 0) 615 * we include all similar threads in the system in our output. 681 return (DCMD_ABORT); 616 * 617 * With a pipe, we filter down to just the threads in our 683 if (sobj != NULL && text_to_sobj(sobj, &sobj_ops) != 0) 618 * input. 684 return (DCMD_USAGE); 619 */ 620 uint_t addrspec = (flags & DCMD_ADDRSPEC); 686 if (excl_sobj != NULL && text_to_sobj(excl_sobj, &excl_sobj_ops) != 0) 621 uint_t only_matching = addrspec && (flags & DCMD_PIPE); 687 return (DCMD_USAGE); 623 mdb_pipe_t p; 689 if (sobj_ops != 0 && excl_sobj_ops != 0) { 690 mdb_warn("stacks: only one of -s and -S can be specified\n"); 625 bzero(&module, sizeof (module)); 691 return (DCMD_USAGE); 626 bzero(&excl_module, sizeof (excl_module)); 692 } 628 if (mdb_getopts(argc, argv, 694 if (tstate_str != NULL && text_to_tstate(tstate_str, &tstate) != 0) 629 'a', MDB_OPT_SETBITS, TRUE, &all, 695 return (DCMD_USAGE); 630 'f', MDB_OPT_SETBITS, TRUE, &force, 631 'i', MDB_OPT_SETBITS, TRUE, &interesting, 697 if (excl_tstate_str != NULL && 632 'v', MDB_OPT_SETBITS, TRUE, &verbose, 698 text_to_tstate(excl_tstate_str, &excl_tstate) != 0) 633 'c', MDB_OPT_STR, &caller_str, 699 return (DCMD_USAGE); 634 'C', MDB_OPT_STR, &excl_caller_str, 635 'm', MDB_OPT_STR, &module_str, 701 if (tstate != -1U && excl_tstate != -1U) { 636 'M', MDB_OPT_STR, &excl_module_str, 702 mdb_warn("stacks: only one of -t and -T can be specified\n"); 637 's', MDB_OPT_STR, &sobj, 703 return (DCMD_USAGE); 638 'S', MDB_OPT_STR, &excl_sobj, 704 } 639 't', MDB_OPT_STR, &tstate_str, 640 'T', MDB_OPT_STR, &excl_tstate_str, 706 /* 641 NULL) != argc) 707 * If there's an address specified, we're going to further filter new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 3 new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 4 708 * to only entries which have an address in the input. To reduce 774 foundcount++; 709 * overhead (and make the sorted output come out right), we 775 seen[entry - p.pipe_data]++; 710 * use mdb_get_pipe() to grab the entire pipeline of input, then 776 if (head == NULL) 711 * use qsort() and bsearch() to speed up the search. 777 head = sp; 712 */ 778 else 713 if (addrspec) { 779 tail->se_next = sp; 714 mdb_get_pipe(&p); 780 tail = sp; 715 if (p.pipe_data == NULL || p.pipe_len == 0) { 781 sp->se_next = NULL; 716 p.pipe_data = &addr; 782 } 717 p.pipe_len = 1; 783 } 718 } 784 if (head == NULL) 719 qsort(p.pipe_data, p.pipe_len, sizeof (uintptr_t), 785 continue; /* no match, skip entry */ 720 uintptrcomp); 787 if (only_matching) { 722 /* remove any duplicates in the data */ 788 cur = sep = head; 723 idx = 0; 789 count = foundcount; 724 while (idx < p.pipe_len - 1) { 790 } 725 uintptr_t *data = &p.pipe_data[idx]; 791 } 726 size_t len = p.pipe_len - idx; 793 if (caller != 0 && !stacks_has_caller(sep, caller)) 728 if (data[0] == data[1]) { 794 continue; 729 memmove(data, data + 1, 730 (len - 1) * sizeof (*data)); 796 if (excl_caller != 0 && stacks_has_caller(sep, excl_caller)) 731 p.pipe_len--; 797 continue; 732 continue; /* repeat without incrementing idx */ 733 } 799 if (module.sm_size != 0 && !stacks_has_module(sep, &module)) 734 idx++; 800 continue; 735 } 802 if (excl_module.sm_size != 0 && 737 seen = mdb_zalloc(p.pipe_len, UM_SLEEP | UM_GC); 803 stacks_has_module(sep, &excl_module)) 738 } 804 continue; 740 /* 806 if (tstate != -1U) { 741 * Force a cleanup if we're connected to a live system. Never 807 if (tstate == TSTATE_PANIC) { 742 * do a cleanup after the first invocation around the loop. 808 if (!sep->se_panic) 743 */ 809 continue; 744 force |= (mdb_get_state() == MDB_STATE_RUNNING); 810 } else if (sep->se_panic || sep->se_tstate != tstate) 745 if (force && (flags & (DCMD_LOOPFIRST|DCMD_LOOP)) == DCMD_LOOP) 811 continue; 746 force = 0; 812 } 813 if (excl_tstate != -1U) { 748 stacks_cleanup(force); 814 if (excl_tstate == TSTATE_PANIC) { 815 if (sep->se_panic) 750 if (stacks_state == STACKS_STATE_CLEAN) { 816 continue; 751 int res = stacks_run(verbose, addrspec ? &p : NULL); 817 } else if (!sep->se_panic && 752 if (res != DCMD_OK) 818 sep->se_tstate == excl_tstate) 753 return (res); 819 continue; 754 } 820 } 756 for (idx = 0; idx < stacks_array_size; idx++) { 822 if (sobj_ops == SOBJ_ALL) { 757 stacks_entry_t *sep = stacks_array[idx]; 823 if (sep->se_sobj_ops == 0) 758 stacks_entry_t *cur = sep; 824 continue; 759 int frame; 825 } else if (sobj_ops != 0) { 760 size_t count = sep->se_count; 826 if (sobj_ops != sep->se_sobj_ops) 827 continue; 762 if (addrspec) { 828 } 763 stacks_entry_t *head = NULL, *tail = NULL, *sp; 764 size_t foundcount = 0; 830 if (!(interesting && sep->se_panic)) { 765 /* 831 if (excl_sobj_ops == SOBJ_ALL) { 766 * We use the now-unused hash chain field se_next to 832 if (sep->se_sobj_ops != 0) 767 * link together the dups which match our list. 833 continue; 768 */ 834 } else if (excl_sobj_ops != 0) { 769 for (sp = sep; sp != NULL; sp = sp->se_dup) { 835 if (excl_sobj_ops == sep->se_sobj_ops) 770 uintptr_t *entry = bsearch(&sp->se_thread, 836 continue; 771 p.pipe_data, p.pipe_len, sizeof (uintptr_t), 837 } 772 uintptrcomp); 838 } 773 if (entry != NULL) { new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 5 new/usr/src/cmd/mdb/common/modules/genunix/findstack.c 6 840 if (flags & DCMD_PIPE_OUT) { 903 return (DCMD_OK); 841 while (sep != NULL) { 904 } 842 mdb_printf("%lr\n", sep->se_thread); ______unchanged_portion_omitted_ 843 sep = only_matching ? 844 sep->se_next : sep->se_dup; 845 } 846 continue; 847 } 849 if (all || !printed) { 850 mdb_printf("%<u>%-?s %-8s %-?s %8s%</u>\n", 851 "THREAD", "STATE", "SOBJ", "COUNT"); 852 printed = 1; 853 } 855 do { 856 char state[20]; 857 char sobj[100]; 859 tstate_to_text(cur->se_tstate, cur->se_panic, 860 state, sizeof (state)); 861 sobj_to_text(cur->se_sobj_ops, 862 sobj, sizeof (sobj)); 864 if (cur == sep) 865 mdb_printf("%-?p %-8s %-?s %8d\n", 866 cur->se_thread, state, sobj, count); 867 else 868 mdb_printf("%-?p %-8s %-?s %8s\n", 869 cur->se_thread, state, sobj, "-"); 871 cur = only_matching ? cur->se_next : cur->se_dup; 872 } while (all && cur != NULL); 874 if (sep->se_failed != 0) { 875 char *reason; 876 switch (sep->se_failed) { 877 case FSI_FAIL_NOTINMEMORY: 878 reason = "thread not in memory"; 879 break; 877 case FSI_FAIL_THREADCORRUPT: 878 reason = "thread structure stack info corrupt"; 879 break; 880 case FSI_FAIL_STACKNOTFOUND: 881 reason = "no consistent stack found"; 882 break; 883 default: 884 reason = "unknown failure"; 885 break; 886 } 887 mdb_printf("%?s <%s>\n", "", reason); 888 } 890 for (frame = 0; frame < sep->se_depth; frame++) 891 mdb_printf("%?s %a\n", "", sep->se_stack[frame]); 892 if (sep->se_overflow) 893 mdb_printf("%?s ... truncated ...\n", ""); 894 mdb_printf("\n"); 895 } 897 if (flags & DCMD_ADDRSPEC) { 898 for (idx = 0; idx < p.pipe_len; idx++) 899 if (seen[idx] == 0) 900 mdb_warn("stacks: %p not in thread list\n", 901 p.pipe_data[idx]); 902 } new/usr/src/cmd/mdb/common/modules/genunix/findstack.h 1 ********************************************************** 2801 Thu Feb 18 08:40:37 2016 new/usr/src/cmd/mdb/common/modules/genunix/findstack.h 6583 remove whole-process swapping ********************************************************** ______unchanged_portion_omitted_ 49 #define FSI_FAIL_BADTHREAD 1 50 #define FSI_FAIL_THREADCORRUPT 2 51 #define
Recommended publications
  • Ubuntu Kung Fu
    Prepared exclusively for Alison Tyler Download at Boykma.Com What readers are saying about Ubuntu Kung Fu Ubuntu Kung Fu is excellent. The tips are fun and the hope of discov- ering hidden gems makes it a worthwhile task. John Southern Former editor of Linux Magazine I enjoyed Ubuntu Kung Fu and learned some new things. I would rec- ommend this book—nice tips and a lot of fun to be had. Carthik Sharma Creator of the Ubuntu Blog (http://ubuntu.wordpress.com) Wow! There are some great tips here! I have used Ubuntu since April 2005, starting with version 5.04. I found much in this book to inspire me and to teach me, and it answered lingering questions I didn’t know I had. The book is a good resource that I will gladly recommend to both newcomers and veteran users. Matthew Helmke Administrator, Ubuntu Forums Ubuntu Kung Fu is a fantastic compendium of useful, uncommon Ubuntu knowledge. Eric Hewitt Consultant, LiveLogic, LLC Prepared exclusively for Alison Tyler Download at Boykma.Com Ubuntu Kung Fu Tips, Tricks, Hints, and Hacks Keir Thomas The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Prepared exclusively for Alison Tyler Download at Boykma.Com Many of the designations used by manufacturers and sellers to distinguish their prod- ucts are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
    [Show full text]
  • Solaris 10 End of Life
    Solaris 10 end of life Continue Oracle Solaris 10 has had an amazing OS update, including ground features such as zones (Solaris containers), FSS, Services, Dynamic Tracking (against live production operating systems without impact), and logical domains. These features have been imitated in the market (imitation is the best form of flattery!) like all good things, they have to come to an end. Sun Microsystems was acquired by Oracle and eventually, the largest OS known to the industry, needs to be updated. Oracle has set a retirement date of January 2021. Oracle indicated that Solaris 10 systems would need to raise support costs. Oracle has never provided migratory tools to facilitate migration from Solaris 10 to Solaris 11, so migration to Solaris has been slow. In September 2019, Oracle decided that extended support for Solaris 10 without an additional financial penalty would be delayed until 2024! Well its March 1 is just a reminder that Oracle Solaris 10 is getting the end of life regarding support if you accept extended support from Oracle. Combined with the fact gdpR should take effect on May 25, 2018 you want to make sure that you are either upgraded to Solaris 11.3 or have taken extended support to obtain any patches for security issues. For more information on tanningix releases and support dates of old and new follow this link ×Sestive to abort the Unix Error Operating System originally developed by Sun Microsystems SolarisDeveloperSun Microsystems (acquired by Oracle Corporation in 2009)Written inC, C'OSUnixWorking StateCurrentSource ModelMixedInitial release1992; 28 years ago (1992-06)Last release11.4 / August 28, 2018; 2 years ago (2018-08-28)Marketing targetServer, PlatformsCurrent: SPARC, x86-64 Former: IA-32, PowerPCKernel typeMonolithic with dynamically downloadable modulesDefault user interface GNOME-2-LicenseVariousOfficial websitewww.oracle.com/solaris Solaris is the own operating system Of Unix, originally developed by Sunsystems.
    [Show full text]
  • Solaris Zones: Operating System Support for Consolidating Commercial Workloads Daniel Price and Andrew Tucker – Sun Microsystems, Inc
    Solaris Zones: Operating System Support for Consolidating Commercial Workloads Daniel Price and Andrew Tucker – Sun Microsystems, Inc. ABSTRACT Server consolidation, which allows multiple workloads to run on the same system, has become increasingly important as a way to improve the utilization of computing resources and reduce costs. Consolidation is common in mainframe environments, where technology to support running multiple workloads and even multiple operating systems on the same hardware has been evolving since the late 1960’s. This technology is now becoming an important differentiator in the UNIX and Linux server market as well, both at the low end (virtual web hosting) and high end (traditional data center server consolidation). This paper introduces Solaris Zones (zones), a fully realized solution for server consolidation projects in a commercial UNIX operating system. By creating virtualized application execution environments within a single instance of the operating system, the facility strikes a unique balance between competing requirements. On the one hand, a system with multiple workloads needs to run those workloads in isolation, to ensure that applications can neither observe data from other applications nor affect their operation. It must also prevent applications from over-consuming system resources. On the other hand, the system as a whole has to be flexible, manageable, and observable, in order to reduce administrative costs and increase efficiency. By focusing on the support of multiple application environments rather than multiple operating system instances, zones meets isolation requirements without sacrificing manageability. Introduction mutually incompatible when run on the same server. In one real-world example, two poorly written appli- Within many IT organizations, driving up system utilization (and saving money in the process) has cations at a customer site both wanted to bind a net- become a priority.
    [Show full text]
  • NSWI 0138: Advanced Unix Programming
    NSWI 0138: Advanced Unix programming (c) 2011-2016 Vladim´ırKotal (c) 2009-2010 Jan Pechanec, Vladim´ırKotal SISAL MFF UK, Malostransk´en´am.25, 118 00 Praha 1 Charles University Czech Republic Vladim´ırKotal [email protected] March 10, 2016 1 Vladim´ırKotal NSWI 0138 (Advanced Unix programming) Contents 1 Overview 5 1.1 What is this lecture about? . .5 1.2 The lecture will cover... .5 1.3 A few notes on source code files . .6 2 Testing 6 2.1 Why?...........................................6 2.2 When ? . .6 2.3 Types of testing . .7 3 Debugging 8 3.1 Debuging in general . .8 3.2 Observing . .9 3.3 Helper tools . .9 3.3.1 ctags . .9 3.3.2 cscope . 10 3.3.3 OpenGrok . 11 3.3.4 Other tools . 11 3.4 Debugging data . 11 3.4.1 stabs . 11 3.4.2 DWARF . 12 3.4.3 CTF (Compact C Type Format) . 12 3.5 Resource leaks . 13 3.6 libumem . 13 3.6.1 How does libumem work . 14 3.6.2 Using libumem+mdb to find memory leaks . 14 3.6.3 How does ::findleaks work . 16 3.7 watchmalloc . 17 3.8 Call tracing . 18 3.9 Using /proc . 19 3.10 Debugging dynamic libraries . 20 3.11 Debuggers . 20 3.12 Symbol search and interposition . 20 3.13 dtrace . 21 4 Terminals 21 4.1 Terminal I/O Overview . 21 4.2 Terminal I/O Overview (cont.) . 22 4.3 Physical (Hardware) Terminal . 24 4.4 stty(1) command . 24 4.5 TTY Driver Connected To a Phy Terminal .
    [Show full text]
  • Open Source Storage Save Money with Open Source Storage
    Save Money with Open Source Storage Save Money with Open Source Storage ® 1 an Save Money with Open SourceStorage Storage, an Internet.comeBook Storage eBook. © 2009, Internet.com Contents… Save Money with Open Source Storage This content was adapted from Internet.com’s Enterprise Storage Forum and Enterprise Networking Planet Web sites. Contributors: Drew Robb, Deann Corum, and Jennifer Schiff. 2 2 The State of Open Source Storage 5 Saving Big Money With Open Source Storage 5 7 7 Get Your Free Networked Storage 9 An Open Source Backup Option 9 11 11 Configure Bacula for Open Source Backups 1 Save Money with Open Source Storage, an Internet.com Storage eBook. © 2009, Internet.com Save Money with Open Source Storage The State of Open Source Storage By Drew Robb pen source storage has come a long way in the “I still wouldn’t say that there were a lot of open source stor- last few years. There are good open source offer- age apps,” said Jason Williams, CTO at Digitar of Boise, ings on the backup, mirroring, file system, NAS, Idaho, a company that makes heavy use of Linux and Sun and storage virtualization side. It is possible to open source software. Ocobble together an awful lot of disks and run them at high performance without the need for state-of-the-art hardware. Williams said the leading open source storage offerings are Even companies known for proprietary offerings, like EMC, Sun’s ZFS file system, Zmanda and Bacula for backup, and are on board. DRBD for network-based disk mir- roring.
    [Show full text]
  • Solaris Internals
    SOLARIS INTERNALS Core Kernel Components i SOLARIS INTERNALS Core Kernel Components Jim Mauro and Richard McDougall Sun Microsystems Press A Prentice Hall Title © 2000 Sun Microsystems, Inc. — Printed in the United States of America. 901 San Antonio Road, Palo Alto, California 94303 U.S.A. All rights reserved. This product and related documentation are protected by copyright and distributed under licenses restricting its use, copying, distribution and decompilation. No part of this product or related documentation may be reproduced in any form by any means without prior written authoriza- tion of Sun and its licensors, if any. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the United States Government is subject to the restrictions as set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19. The product described in this manual may be protected by one or more U.S. patents, foreign patents, or pending applications. TRADEMARKS—Sun, Sun Microsystems, the Sun logo, HotJava, Solaris, SunExpress, SunScreen, SunDocs, SPARC, SunOS, and SunSoft are trademarks or registered trademarks of Sun Microsystems, Inc. All other products or services mentioned in this book are the trademarks or service marks of their respective companies or organizations. 109 87654321 ISBN 0-13-022496-0 Sun Microsystems Press A Prentice Hall Title For Traci. .. for your love and encouragement .......................................... Richard For Donna, Frankie and Dominick. All my love, always... .......................................... Jim ACKNOWLEDGEMENTS It ‘s hard to thank all people that helped us with this book. As a minimum, we owe: • Thanks to Brian Wong, Adrian Cockcroft, Paul Strong, Lisa Musgrave and Fraser Gardiner for all your help and advise for the structure and content of this book.
    [Show full text]
  • Dtrace-Ebook.Pdf
    The illumos Dynamic Tracing Guide The contents of this Documentation are subject to the Public Documentation License Version 1.01 (the “License”); you may only use this Documentation if you comply with the terms of this License. Further information about the License is available in AppendixA. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the publisher was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol, or printed with initial capital letters or in all capitals. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark of The Open Group. illumos and the illumos logo are trademarks or registered trademarks of Garrett D’Amore. Sun, Sun Microsystems, StarOffice, Java, and Solaris are trademarks or registered trademarks of Oracle, Inc. or its subsidiaries in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTA- TIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. Copyright © 2008 Sun Microsystems, Inc.
    [Show full text]
  • Oracle® Solaris 11.3 Security and Hardening Guidelines
    ® Oracle Solaris 11.3 Security and Hardening Guidelines Part No: E54807 March 2018 Oracle Solaris 11.3 Security and Hardening Guidelines Part No: E54807 Copyright © 2011, 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
    [Show full text]
  • Virtualization and Namespace Isolation in the Solaris Operating System (PSARC/2002/174)
    Virtualization and Namespace Isolation in the Solaris Operating System (PSARC/2002/174) John Beck, David Comay, Ozgur L., Daniel Price, and Andy T. Solaris Kernel Technology Andrew G. and Blaise S. Solaris Network and Security Technologies Revision 1.6 (OpenSolaris) September 7, 2006 ii Contents 1 Introduction 1 1.1 Zone Basics . 2 1.2 Zone Principles . 3 1.3 Terminology and Conventions . 5 1.4 Outline . 6 2 Related Work 7 3 Zone Runtime 9 3.1 Zone State Model . 9 3.2 Zone Names and Numeric IDs . 10 3.3 Zone Runtime Support . 10 3.3.1 zoneadmd(1M) ............................... 10 3.3.2 zsched . 12 3.4 Listing Zone Information . 12 4 Zone Administration 13 4.1 Zone Configuration . 13 4.1.1 Configuration Data . 14 4.2 Zone Installation . 15 4.3 Virtual Platform Administration . 16 4.3.1 Readying Zones . 16 4.3.2 Booting Zones . 16 4.3.3 Halting Zones . 17 4.3.4 Rebooting Zones . 17 4.3.5 Automatic Zone Booting . 18 4.4 Zone Login . 18 4.4.1 Zone Console Login . 18 4.4.2 Interactive and Non-Interactive Modes . 19 4.4.3 Failsafe Mode . 20 4.4.4 Remote Login . 20 4.5 Monitoring and Controlling Zone Processes . 21 iii 5 Administration within Zones 23 5.1 Node Name . 23 5.2 Name Service Usage within a Zone . 23 5.3 Default Locale and Timezone . 24 5.4 Initial Zone Configuration . 24 5.5 System Log Daemon . 24 5.6 Commands . 25 5.7 Internals of Booting Zones .
    [Show full text]
  • A Guide to Kernel Exploitation Attacking the Core (2011
    A Guide to Kernel Exploitation This page intentionally left blank A Guide to Kernel Exploitation Attacking the Core Enrico Perla Massimiliano Oldani Technical Editor Graham Speake AMSTERDAM • BOSTON • HEIDELBERG • LONDON • • • NEW YORK OXFORD PARIS SAN DIEGO SYNGRESS SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO ® Syngress is an imprint of Elsevier Acquiring Editor: Rachel Roumeliotis Development Editor: Matthew Cater Project Manager: Julie Ochs Designer: Alisa Andreola Syngress is an imprint of Elsevier 30 Corporate Drive, Suite 400, Burlington, MA 01803, USA © 2011 Elsevier Inc. All rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods or professional practices, may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility.
    [Show full text]
  • Solaris 64-Bit Developer's Guide
    Solaris 64-bit Developer’s Guide Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 816–5138–10 January 2005 Copyright 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved. This product or document is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, docs.sun.com, AnswerBook, AnswerBook2, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. The OPEN LOOK and Sun™ Graphical User Interface was developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching and developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User Interface, which license also covers Sun’s licensees who implement OPEN LOOK GUIs and otherwise comply with Sun’s written license agreements.
    [Show full text]
  • Virtualization in Multilevel Security Enviroments
    Virtualization in Multilevel Security Environments Dr. Christoph Schuba [email protected] http://blogs.sun.com/schuba 1 Agenda • Using OS Virtualization to Build MLS Architecture > OS Virtualization > Labeled Local and Remote File Systems > Trusted Desktop • Overview Trusted VirtualBox • What We Can Do Today • What We Can Do Tomorrow - 2 - Agenda • Using OS Virtualization to Build MLS Architecture > OS Virtualization > Labeled Local and Remote File Systems > Trusted Desktop • Overview Trusted VirtualBox • What We Can Do Today • What We Can Do Tomorrow - 3 - Virtualization Technologies • Type 1 - Hypervisor-based virtualization > xVM - style (think XEN) > Logical Domains (LDOM) - firmware-style, Sparc CMT • OS virtualization > Containers (aka Zones), both x64 and Sparc • Type 2 - Hypervisor-based virtualization • Desktop and network virtualization > Sunray, VDI, Crossbow, ... • Combinations! - 4 - Server Virtualization Categories Hard Partitions Virtual Machines OS Virtualization Resource Mgmt. App OS Server Multiple OS Single OS > Very High RAS > Ability to live migrate > Very scalable and low > Very scalable and low an OS overhead overhead > Very Scalable > Ability to run different > Single OS to manage > Single OS to manage > Mature Technology OS versions and types > Cleanly divides system > Fine grained resource > Ability to run different > De-couples OS and and application management OS versions HW versions administration > Fine grained resource management - 5 - Virtualization Virtualization is the idea to introduce an abstraction layer that decouples previously adjacent layers to deliver greater resource utilization and flexibility. • Layers? > application, operating system, network, storage, file system, memory, resources, etc. - 6 - A Word About the Software • Solaris vs. OpenSolaris > Initially Developer Focus, soon Enterprise > Free > Open Source > Superior prototyping Environment for Security Research – virtualization technologies, – process privileges, – fault and service management, – open storage, especially ZFS – cryptographic framework, etc.
    [Show full text]