This document provides an overview and agenda for a kernel security workshop. It introduces the speaker Mohit Saxena and his background. The agenda covers OS and kernel overview topics like processes, interrupts, memory management, and multitasking. It discusses kernel architecture approaches like monolithic, layered, and microkernel. It also covers security concepts like DAC, LSM, and SELinux. Specific topics on Linux and BSD kernel security are included. The agenda concludes with a live SDWAN demo and a workshop on building a firewall using FreeBSD.
The document discusses input/output (I/O) and file management in operating systems. It covers several key topics:
1) I/O devices are controlled by the OS and include input devices like keyboards and output devices like monitors. Files are managed through a logical, uniform view abstracted from physical storage properties.
2) A file is a collection of related information defined by its creator, such as programs, data, text, or formatted records. File management involves creation, deletion, mapping to storage, and backup.
3) The OS implements I/O buffering and caching to improve performance and address speed mismatches between devices. It also performs disk scheduling and structures file storage through directories, indexing,
The document discusses distributed query processing and optimization in distributed database systems. It covers topics like query decomposition, distributed query optimization techniques including cost models, statistics collection and use, and algorithms for query optimization. Specifically, it describes the process of optimizing queries distributed across multiple database fragments or sites including generating the search space of possible query execution plans, using cost functions and statistics to pick the best plan, and examples of deterministic and randomized search strategies used.
The document provides an overview of operating system concepts, including:
- The four main components of a computer system: hardware, operating system, applications, and users.
- What operating systems do, such as managing resources and controlling programs.
- Computer system organization involving CPUs, memory, I/O devices, and interrupts.
- Operating system structures like processes, memory management, and storage management.
The document discusses key components and concepts related to operating system structures. It describes common system components like process management, memory management, file management, I/O management, and more. It then provides more details on specific topics like the role of processes, main memory management, file systems, I/O systems, secondary storage, networking, protection systems, and command interpreters in operating systems. Finally, it discusses operating system services, system calls, and how parameters are passed between programs and the operating system.
This document discusses the structure and design of operating systems. It covers the services provided by operating systems, including user interfaces, program execution, I/O operations, file management, communications, error detection, resource allocation, accounting, and protection. It also describes system calls, system programs, and various approaches to structuring operating systems, such as simple, layered, and microkernel structures. Finally, it addresses operating system implementation, debugging, and the system boot process.
The document discusses various concepts related to process management in operating systems including process scheduling, CPU scheduling, and process synchronization. It defines a process as a program in execution and describes the different states a process can be in during its lifecycle. It also discusses process control blocks which maintain information about each process, and various scheduling algorithms like first come first serve, shortest job first, priority and round robin scheduling.
The document provides an overview of operating systems, including what constitutes an OS (kernel, system programs, application programs), storage device hierarchy, system calls, process creation and states, process scheduling, inter-process communication methods like shared memory and pipes, synchronization techniques like mutexes and semaphores, readers-writers problem, and potential for deadlocks. Key concepts covered include kernel mode vs user mode, process control blocks, context switching, preemption, and requirements for deadlock situations.
The document discusses input/output (I/O) and file management in operating systems. It covers several key topics:
1) I/O devices are controlled by the OS and include input devices like keyboards and output devices like monitors. Files are managed through a logical, uniform view abstracted from physical storage properties.
2) A file is a collection of related information defined by its creator, such as programs, data, text, or formatted records. File management involves creation, deletion, mapping to storage, and backup.
3) The OS implements I/O buffering and caching to improve performance and address speed mismatches between devices. It also performs disk scheduling and structures file storage through directories, indexing,
The document discusses distributed query processing and optimization in distributed database systems. It covers topics like query decomposition, distributed query optimization techniques including cost models, statistics collection and use, and algorithms for query optimization. Specifically, it describes the process of optimizing queries distributed across multiple database fragments or sites including generating the search space of possible query execution plans, using cost functions and statistics to pick the best plan, and examples of deterministic and randomized search strategies used.
The document provides an overview of operating system concepts, including:
- The four main components of a computer system: hardware, operating system, applications, and users.
- What operating systems do, such as managing resources and controlling programs.
- Computer system organization involving CPUs, memory, I/O devices, and interrupts.
- Operating system structures like processes, memory management, and storage management.
The document discusses key components and concepts related to operating system structures. It describes common system components like process management, memory management, file management, I/O management, and more. It then provides more details on specific topics like the role of processes, main memory management, file systems, I/O systems, secondary storage, networking, protection systems, and command interpreters in operating systems. Finally, it discusses operating system services, system calls, and how parameters are passed between programs and the operating system.
This document discusses the structure and design of operating systems. It covers the services provided by operating systems, including user interfaces, program execution, I/O operations, file management, communications, error detection, resource allocation, accounting, and protection. It also describes system calls, system programs, and various approaches to structuring operating systems, such as simple, layered, and microkernel structures. Finally, it addresses operating system implementation, debugging, and the system boot process.
The document discusses various concepts related to process management in operating systems including process scheduling, CPU scheduling, and process synchronization. It defines a process as a program in execution and describes the different states a process can be in during its lifecycle. It also discusses process control blocks which maintain information about each process, and various scheduling algorithms like first come first serve, shortest job first, priority and round robin scheduling.
The document provides an overview of operating systems, including what constitutes an OS (kernel, system programs, application programs), storage device hierarchy, system calls, process creation and states, process scheduling, inter-process communication methods like shared memory and pipes, synchronization techniques like mutexes and semaphores, readers-writers problem, and potential for deadlocks. Key concepts covered include kernel mode vs user mode, process control blocks, context switching, preemption, and requirements for deadlock situations.
The document discusses different aspects of file systems and file structures. It describes files as collections of data that have long-term existence, can be shared between processes, and organized hierarchically. File systems provide storage for files and functions to manipulate them, maintaining attributes. Common file structures include sequential, indexed sequential, and direct/hashed files. The document also outlines the components of a file system software architecture and operations performed on directories.
Query Processing : Query Processing Problem, Layers of Query Processing Query Processing in Centralized Systems – Parsing & Translation, Optimization, Code generation, Example Query Processing in Distributed Systems – Mapping global query to local, Optimization,
IPC allows processes to communicate and share resources. There are several common IPC mechanisms, including message passing, shared memory, semaphores, files, signals, sockets, message queues, and pipes. Message passing involves establishing a communication link and exchanging fixed or variable sized messages using send and receive operations. Shared memory allows processes to access the same memory area. Semaphores are used to synchronize processes. Files provide durable storage that outlives individual processes. Signals asynchronously notify processes of events. Sockets enable two-way point-to-point communication between processes. Message queues allow asynchronous communication where senders and receivers do not need to interact simultaneously. Pipes create a pipeline between processes by connecting standard streams.
The document discusses various algorithms for achieving distributed mutual exclusion and process synchronization in distributed systems. It covers centralized, token ring, Ricart-Agrawala, Lamport, and decentralized algorithms. It also discusses election algorithms for selecting a coordinator process, including the Bully algorithm. The key techniques discussed are using logical clocks, message passing, and quorums to achieve mutual exclusion without a single point of failure.
In the given presentation, process overview,process management scheduling typesand some more basic concepts were explained.
Kindly refere the presentation.
Threads in Operating System | Multithreading | Interprocess CommunicationShivam Mitra
This document provides an introduction to threads. It discusses the differences between processes and threads, how threads are implemented in Linux, and challenges with multithreading like race conditions. Interprocess communication methods like shared memory and message passing are also covered. The benefits of multithreading include improved responsiveness and resource sharing. Multiprocessing uses multiple CPU cores to run programs in parallel while multithreading shares memory between threads.
The document outlines concepts related to distributed database reliability. It begins with definitions of key terms like reliability, availability, failure, and fault tolerance measures. It then discusses different types of faults and failures that can occur in distributed systems. The document focuses on techniques for ensuring transaction atomicity and durability in the face of failures, including logging, write-ahead logging, and various execution strategies. It also covers checkpointing and recovery protocols at both the local and distributed level, particularly two-phase commit.
A distributed system is a collection of independent computers that appears as a single coherent system to users. It provides advantages like cost-effectiveness, reliability, scalability, and flexibility but introduces challenges in achieving transparency, dependability, performance, and flexibility due to its distributed nature. A true distributed system that solves all these challenges perfectly is difficult to achieve due to limitations like network complexity and security issues.
This document discusses storage management techniques used in operating systems, including contiguous memory allocation, segmentation, paging, and virtual memory. It provides details on how these techniques work, such as how segmentation divides memory into variable-sized segments and uses segment tables, and how paging divides memory into fixed-sized pages and page tables to translate logical to physical addresses. It also covers concepts like internal and external fragmentation, demand paging, and page replacement algorithms.
Distributed shared memory (DSM) provides processes with a shared address space across distributed memory systems. DSM exists only virtually through primitives like read and write operations. It gives the illusion of physically shared memory while allowing loosely coupled distributed systems to share memory. DSM refers to applying this shared memory paradigm using distributed memory systems connected by a communication network. Each node has CPUs, memory, and blocks of shared memory can be cached locally but migrated on demand between nodes to maintain consistency.
User objects can represent employees, customers, or students. Groups are collections of users that permissions or rights can be applied to collectively rather than individually. There are two types of user accounts: local accounts stored on individual computers and domain accounts stored centrally in Active Directory. Domain accounts are replicated across domain controllers for shared management.
Threads provide concurrency within a process by allowing parallel execution. A thread is a flow of execution that has its own program counter, registers, and stack. Threads share code and data segments with other threads in the same process. There are two types: user threads managed by a library and kernel threads managed by the operating system kernel. Kernel threads allow true parallelism but have more overhead than user threads. Multithreading models include many-to-one, one-to-one, and many-to-many depending on how user threads map to kernel threads. Threads improve performance over single-threaded processes and allow for scalability across multiple CPUs.
The document discusses different disk scheduling policies and RAID levels. It describes FIFO, SSTF, SCAN, C-SCAN, and FSCAN scheduling policies and how they differ in terms of seek time optimization. It also explains RAID levels 0, 1, and 5 and their tradeoffs between performance, reliability, and cost. An example trace compares the average seek lengths for different scheduling policies.
The document discusses memory management and file management in operating systems. Memory management tracks memory allocation and handles moving processes between main memory and disk. File management creates, locates, shares, modifies, and deletes files and organizes them into directories. It also specifies file attributes, operations, access permissions, and the logical storage of files in file systems. Caching stores recently accessed data in temporary memory to improve input/output performance. The input/output subsystem of the operating system's kernel manages various input/output devices and their differing functionality and speeds.
This document provides an overview of operating system concepts from Chapter 2 of the textbook "Operating System Concepts – 9th Edition" by Silberschatz, Galvin and Gagne. It discusses operating system services including user interfaces, process management, I/O operations, file systems, resource management, protection and security. It also describes system calls as the programming interface to OS services, common API's, how parameters are passed to system calls, and examples of different types of system calls.
INTRODUCTIONTO OPERATING SYSTEM
What is an Operating System?
Mainframe Systems
Desktop Systems
Multiprocessor Systems
Distributed Systems
Clustered System
Real -Time Systems
Handheld Systems
Computing Environments
1. The document provides an introduction to operating systems, covering topics like computer system architecture, operating system structure and operations, types of computing environments, and operating system services.
2. It describes the basic components of an operating system including process management, memory management, storage management, I/O subsystem management, and protection and security.
3. Various computing environments are discussed, including stand-alone systems, distributed systems, client-server models, peer-to-peer networks, virtualization, cloud computing, and real-time embedded systems.
The document discusses different aspects of file systems and file structures. It describes files as collections of data that have long-term existence, can be shared between processes, and organized hierarchically. File systems provide storage for files and functions to manipulate them, maintaining attributes. Common file structures include sequential, indexed sequential, and direct/hashed files. The document also outlines the components of a file system software architecture and operations performed on directories.
Query Processing : Query Processing Problem, Layers of Query Processing Query Processing in Centralized Systems – Parsing & Translation, Optimization, Code generation, Example Query Processing in Distributed Systems – Mapping global query to local, Optimization,
IPC allows processes to communicate and share resources. There are several common IPC mechanisms, including message passing, shared memory, semaphores, files, signals, sockets, message queues, and pipes. Message passing involves establishing a communication link and exchanging fixed or variable sized messages using send and receive operations. Shared memory allows processes to access the same memory area. Semaphores are used to synchronize processes. Files provide durable storage that outlives individual processes. Signals asynchronously notify processes of events. Sockets enable two-way point-to-point communication between processes. Message queues allow asynchronous communication where senders and receivers do not need to interact simultaneously. Pipes create a pipeline between processes by connecting standard streams.
The document discusses various algorithms for achieving distributed mutual exclusion and process synchronization in distributed systems. It covers centralized, token ring, Ricart-Agrawala, Lamport, and decentralized algorithms. It also discusses election algorithms for selecting a coordinator process, including the Bully algorithm. The key techniques discussed are using logical clocks, message passing, and quorums to achieve mutual exclusion without a single point of failure.
In the given presentation, process overview,process management scheduling typesand some more basic concepts were explained.
Kindly refere the presentation.
Threads in Operating System | Multithreading | Interprocess CommunicationShivam Mitra
This document provides an introduction to threads. It discusses the differences between processes and threads, how threads are implemented in Linux, and challenges with multithreading like race conditions. Interprocess communication methods like shared memory and message passing are also covered. The benefits of multithreading include improved responsiveness and resource sharing. Multiprocessing uses multiple CPU cores to run programs in parallel while multithreading shares memory between threads.
The document outlines concepts related to distributed database reliability. It begins with definitions of key terms like reliability, availability, failure, and fault tolerance measures. It then discusses different types of faults and failures that can occur in distributed systems. The document focuses on techniques for ensuring transaction atomicity and durability in the face of failures, including logging, write-ahead logging, and various execution strategies. It also covers checkpointing and recovery protocols at both the local and distributed level, particularly two-phase commit.
A distributed system is a collection of independent computers that appears as a single coherent system to users. It provides advantages like cost-effectiveness, reliability, scalability, and flexibility but introduces challenges in achieving transparency, dependability, performance, and flexibility due to its distributed nature. A true distributed system that solves all these challenges perfectly is difficult to achieve due to limitations like network complexity and security issues.
This document discusses storage management techniques used in operating systems, including contiguous memory allocation, segmentation, paging, and virtual memory. It provides details on how these techniques work, such as how segmentation divides memory into variable-sized segments and uses segment tables, and how paging divides memory into fixed-sized pages and page tables to translate logical to physical addresses. It also covers concepts like internal and external fragmentation, demand paging, and page replacement algorithms.
Distributed shared memory (DSM) provides processes with a shared address space across distributed memory systems. DSM exists only virtually through primitives like read and write operations. It gives the illusion of physically shared memory while allowing loosely coupled distributed systems to share memory. DSM refers to applying this shared memory paradigm using distributed memory systems connected by a communication network. Each node has CPUs, memory, and blocks of shared memory can be cached locally but migrated on demand between nodes to maintain consistency.
User objects can represent employees, customers, or students. Groups are collections of users that permissions or rights can be applied to collectively rather than individually. There are two types of user accounts: local accounts stored on individual computers and domain accounts stored centrally in Active Directory. Domain accounts are replicated across domain controllers for shared management.
Threads provide concurrency within a process by allowing parallel execution. A thread is a flow of execution that has its own program counter, registers, and stack. Threads share code and data segments with other threads in the same process. There are two types: user threads managed by a library and kernel threads managed by the operating system kernel. Kernel threads allow true parallelism but have more overhead than user threads. Multithreading models include many-to-one, one-to-one, and many-to-many depending on how user threads map to kernel threads. Threads improve performance over single-threaded processes and allow for scalability across multiple CPUs.
The document discusses different disk scheduling policies and RAID levels. It describes FIFO, SSTF, SCAN, C-SCAN, and FSCAN scheduling policies and how they differ in terms of seek time optimization. It also explains RAID levels 0, 1, and 5 and their tradeoffs between performance, reliability, and cost. An example trace compares the average seek lengths for different scheduling policies.
The document discusses memory management and file management in operating systems. Memory management tracks memory allocation and handles moving processes between main memory and disk. File management creates, locates, shares, modifies, and deletes files and organizes them into directories. It also specifies file attributes, operations, access permissions, and the logical storage of files in file systems. Caching stores recently accessed data in temporary memory to improve input/output performance. The input/output subsystem of the operating system's kernel manages various input/output devices and their differing functionality and speeds.
This document provides an overview of operating system concepts from Chapter 2 of the textbook "Operating System Concepts – 9th Edition" by Silberschatz, Galvin and Gagne. It discusses operating system services including user interfaces, process management, I/O operations, file systems, resource management, protection and security. It also describes system calls as the programming interface to OS services, common API's, how parameters are passed to system calls, and examples of different types of system calls.
INTRODUCTIONTO OPERATING SYSTEM
What is an Operating System?
Mainframe Systems
Desktop Systems
Multiprocessor Systems
Distributed Systems
Clustered System
Real -Time Systems
Handheld Systems
Computing Environments
1. The document provides an introduction to operating systems, covering topics like computer system architecture, operating system structure and operations, types of computing environments, and operating system services.
2. It describes the basic components of an operating system including process management, memory management, storage management, I/O subsystem management, and protection and security.
3. Various computing environments are discussed, including stand-alone systems, distributed systems, client-server models, peer-to-peer networks, virtualization, cloud computing, and real-time embedded systems.
This document provides an introduction to operating systems. It defines an operating system as a program that acts as an intermediary between the user and computer hardware. The key components of a computer system are described as hardware, operating system, application programs, and users. Operating systems manage resources, control programs, and provide common services like memory management, process management, and I/O management. Various computing environments are explored, including traditional systems, mobile systems, distributed systems, client-server models, and virtualization.
The document provides an overview of operating systems, including definitions of key terms like kernel, processes, memory management, file systems, etc. It discusses different types of operating systems like batch, time-sharing, distributed, and real-time operating systems. It also covers operating system components like process management, memory management, I/O management, and system calls. Finally, it discusses user interfaces, system programs, and services provided by operating systems.
This document provides an overview of the topics and slides covered in Unit 1 of the Operating Systems course. It includes:
1. An index listing the topics, corresponding lecture numbers, and slide numbers. Topics include an overview of operating systems, OS functions, protection and security, distributed systems, special purpose systems, OS structures and system calls, and OS generation.
2. Brief descriptions of what an operating system is, its goals, and definitions. It also describes basic computer system organization with CPUs, memory, and I/O devices.
3. An overview of operating system structures including multiprogramming, timesharing, multitasking, and virtual memory to enable efficient sharing of resources between processes.
The document provides an overview of operating systems. It begins with definitions of an operating system and its roles in providing resources to users and applications and coordinating access to resources. It then discusses operating system concepts like process management, memory management, file management, I/O management, and protection systems. It outlines the evolution of operating systems from early batch systems to modern networked and distributed systems. It also discusses different operating system structures like kernel-based approaches, layered approaches, and virtual machine approaches.
The document provides an overview of operating system concepts and components. It defines an operating system as a program that acts as an intermediary between the computer hardware and the user. The key components of a computer system are described as the hardware, operating system, application programs, and users. The document outlines the basic functions of an operating system including managing processes, memory, storage, protection and security. It provides descriptions of computer system organization, interrupt handling, I/O structure, storage hierarchy and memory management. The structures of multiprogramming, timesharing and virtual memory systems are also summarized.
The document provides an overview of operating systems, including what they are, their main objectives and advantages. It discusses the history and evolution of OS, from early systems in the 1950s used for tape storage, to modern operating systems with graphical user interfaces. It also covers different types of OS like batch processing systems, time-sharing systems, personal computer systems, parallel and real-time systems. Key aspects of OS like kernels, memory management and different system architectures are summarized as well.
The document discusses the objectives, functions, and evolution of operating systems. It provides definitions of operating systems and describes what operating systems do from the user and system perspectives. It outlines the key functions of operating systems including memory management, processor management, device management, file management, and security. It also discusses why operating systems need to evolve to accommodate hardware upgrades, new services, and fixes. The evolution of operating systems is summarized from the first to fourth generations as the technology advanced from single-user systems to networks and personal computers.
UNIT 1 - UNDERSTANDINGTHE PRINCIPLES OF OPERATING SYSTEM.pptxLeahRachael
The document discusses different types of operating systems. It describes batch operating systems which run jobs in batches without user interaction. Time-sharing systems allow multiple users to access the system simultaneously through time-sharing of the CPU. Distributed systems distribute processing across networked computers. Network operating systems manage resources and functions on servers to enable file and printer sharing across local networks. Real-time systems have strict time constraints and are used for applications like industrial controls where response times must be very fast.
An operating system is an interface between a computer user and the computer hardware. The document discusses the key functions of operating systems including memory management, processor management, device management, file management, security, and more. It provides examples of popular operating systems like Linux, Windows, and describes different types of operating systems such as batch, time-sharing, distributed, network, and real-time operating systems.
This document provides an overview of operating systems and computer system organization. It describes the basic components of a computer system including hardware, operating system, application programs, and users. It then discusses operating system functions like process management, memory management, storage management, and protection/security. It provides details on computer system architecture including multiprocessor systems and clustered systems. It also covers operating system structure for multiprogramming and timesharing systems.
The document provides an introduction to operating systems, including definitions, goals, and components. It discusses how operating systems manage computer hardware, execute user programs, and make systems convenient and efficient. It describes how operating systems act as an intermediary between users and hardware. It also summarizes the evolution of operating systems from early batch systems to modern time-sharing and networked systems. Key aspects covered include process management, memory management, multiprocessing, real-time systems, personal computers, and the role of the operating system in enabling interaction between programs and hardware.
The document outlines the key concepts covered in an operating systems course, including:
1. Operating system structures like processes, threads, CPU scheduling, synchronization, deadlocks, memory and file systems.
2. Linux and Windows system internals such as interrupts, device drivers, and protection.
3. Distributed systems topics like networks, client-server models, peer-to-peer architectures, and virtual machines.
This document provides an introduction to operating systems, including definitions, goals, and components. It describes different types of systems such as mainframe, time-sharing, desktop, parallel, distributed, and real-time systems. It also discusses processes, process scheduling, and interprocess communication.
4 Module - Operating Systems Configuration and Use by Mark John LadoMark John Lado, MIT
4 Module - Operating Systems Configuration and Use
More on https://www.markjohn.cf/courses
This course will deliberate on the basics of an operating system, which may include Computer Memory, the Operating System, its Graphical User Interface, The Windows Operating System, and Desktop, Operating System Installation.
This document provides a summary of key topics covered in lecture materials on operating systems. It discusses the basic functions and components of operating systems including process management, memory management, CPU scheduling, synchronization, deadlocks, and virtual memory. Specific scheduling algorithms like first-come first-served, shortest job first and round-robin are explained. The document also covers operating system services, system calls, protection and various historical generations of operating systems.
This document provides an overview of operating system concepts. It begins with an introduction to operating systems and their basic functions such as executing programs, allocating resources, and acting as an interface between hardware and software. It then describes computer system organization including CPUs, memory, I/O devices, and buses. Next, it discusses operating system structure, operations, and common components like process management, memory management, and storage management. Finally, it provides examples of different computing environments and open-source operating systems.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
How to Get CNIC Information System with Paksim Ga.pptx
Kernel security Concepts
1. OS & Kernel Level Security, Applications and Use Cases
Kernel Security Workshop
Mohit Saxena
CTO Infinity Labs Ltd.
2. Mohit Saxena
CTO
Infinity Labs Ltd
• 18+ years of industry experience in
Telecommunication, International Roaming, IP,
CS Core, PS Core, Security Automation,
Segment routing and NFV.
• Implemented world’s First CDMA to GSM
inter-standard roaming with MACH (Patented)
• Mohit was a Principal Architect with Cisco &
spent 8 years where he Architected network,
Security and Automation Solutions for all major
Service Providers in India and SAARC including
Airtel, Jio, Vodafone, MTS, Aircel, TTSL, Tata
communications, Idea, Ncell Nepal, Dialog and
Mobitel in Srilanka, Dhiragu Maldives, Robi
Bangladesh etc.
• Mohit has been part of various Patents for
Cisco and IETF RFC drafts.
• A well known Industry figure with
professional associations with IET UK, IEEE, IEI,
APNIC Etc.
• Mohit is a Research Scholar & hold a M.Tech
from MIT
3. Agenda
• OS Overview
• Concept of Process, Interrupts & system calls
• Process, Memory & IO Management
• Multitasking & Multiprogramming OS
• Kernel Architecture, Micro Kernel and Modules approach
• DAC & LSM Concepts
• SE Linux Architecture
• Process, memory & IO Security
• Linux Kernel Example
• BSD Kernel Introduction
• IPSEC Use case, SDWAN Live Demo
• Make your own Firewall (Workshop based on Free BSD)
4. Why do we need an Operating System?
Hardware (resource)
CPU Memory
Disk
Input/
Output
Write a program to sort n elements
5. What is an Operating System?
(User’s view)
– A program that acts as an intermediary between a
user of a computer and the computer hardware
– Defines an interface for the user to use services
provided by the system
– Creates an environment for the user
6. What is an
Operating
System?
(User’s view)
• Abstract Machine
– Hides complex details of the
underlying hardware
– Provides common API to
applications and services
– Simplifies application writing
• Command Interpreter
– Part of a OS that understands and
executes commands that are
entered interactively by a human
being or from a program
– Shell
7. Why is abstraction
important?
• Without OSs and abstract interfaces,
application writers must program all device
access directly
– load device command codes into device
registers
– understand physical characteristics of
the devices
• Applications suffer!
– very complicated maintenance and
upgrading
– no portability
8. What Operating Systems Do
(User’s view)
• Depends on the point of view
• Single user system
• Users want convenience, ease of use
• Don’t care about resource utilization
9. What Operating Systems Do
(User’s view)
Depends on the point of view
• Shared computer such as mainframe must keep
all users happy
• Response time minimum
– Keep all the users happy
Shared CPU, memory
10. What Operating Systems Do
(Systems view)
•OS is a resource allocator
•Manages all resources
•Decides between conflicting requests
for efficient and fair resource use
•OS is a control program
•Controls execution of programs to
prevent errors and improper use of the
computer
11. Concept of Process
• Process
– Program loaded in memory and in execution
• Program is a passive entity
• Process is an active entity
11
12. Types of Systems
• Batch Systems
– Multiple jobs, but only one job in memory at one
time and executed (till completion) before the next
one starts
Operating system
User program
Jobs waiting
13. Types of Systems
• Multiprogram Systems
– Multiple jobs in memory, CPU is
multiplexed between them
– Single user cannot keep CPU and I/O
devices busy at all times
– When it has to wait (for I/O for
example), OS switches to another job
– Multiprogramming organizes jobs
(code and data) so CPU always has one
to execute
– A subset of total jobs in system is kept
in memory
– One job selected and run via job
scheduling
• Effective resource utilization
• Poor user experience
14. • Time-sharing Systems (multitasking)
logical extension of multiprogramming in which CPU switches jobs so
frequently that users can interact with each job while it is running, creating
interactive computing
– Response time should be < 1 second
– Each user has at least one program executing in memory
– If several jobs ready to run at the same time [ CPU scheduling
Types of Systems
Low Response time
Low Response time
15. What Operating Systems Do
(Systems view)
•OS is a resource allocator
•Manages all resources
•Decides between conflicting requests for
efficient and fair resource use
•OS is a control program
•Controls execution of programs to prevent
errors and improper use of the computer
16. Manage resources
CPU
1. Share the CPU with several users
2. Decide when to allocate CPU to
which user (CPU scheduling)
3. Ensure fair user experience
Job 1
Job 2
Job 3
1. Share memory with several
different users
2. Should not overlap
3. Ensure protection
Memory
17. Role of Operating system
• Computer system can be divided into four components:
– Hardware – provides basic computing resources
• CPU, memory, I/O devices
– Application programs – define the ways in which the system
resources are used to solve the computing problems of the
users
• Word processors, compilers, web browsers, database systems, video
games
– Users
• People, machines, other computers
– Operating system
• Controls and coordinates use of hardware among various applications
and users
19. Execution of
OS
Any difference in execution between user and OS program?
User program invokes OS code by generating Interrupt, system call
To perform some task reserved for
OS
Accessing I/O devices (read, write
files)
Until an interrupt comes, OS remains Idle
Interrupt driven
20. What Operating Systems Do
(Systems view)
•Manages all resources
•Decides between conflicting
requests for efficient and fair
resource use
OS is a resource allocator
•Controls execution of programs to
prevent errors and improper use
of the computer
OS is a control program
21. Operating-System Operations
•Must distinguish between the user
level code and OS code
•User mode and kernel mode
•Mode bit provided by hardware
•Provides ability to distinguish
when system is running user
code or kernel code
•System call changes mode to
kernel, return from call resets it
to user
22. User Mode – Kernel Mode Switching
System boot
Hardware starts kernel mode
Load Operating system
Start user application
Switch to User mode
Whenever Trap or interrupt
occurs, hardware switches to
user to kernel mode
23. • Software error creates exception or trap
• Division by zero, request for operating system service, setting timer
• Restricts user process from executing privilege instruction
Dual-mode operation allows OS to protect
itself and other system components
Privilege instructions
• E.g. Segmentation fault!
26. Resources
Managed by
OS
•Physical
•CPU, Memory, Disk, I/O
Devices like keyboard,
monitor, printer
•Logical
•Process, File, …
•Hence we have
•Process management
•Memory management
•File management
•I/O management
27. Process Management
• A process is a program in execution. Program is a passive entity, process is an
active entity.
• Process needs resources to accomplish its task
• CPU time
• Representation of process
• Process has one program counter specifying location of next instruction
to execute
• Data structure (stores information of a process)
• Many processes may be associated with the same program
• Typically system has many processes
• some user processes,
• some operating system processes
• Life cycle of a process
• States
• Arrival, Computation, I/O, I/O completion, termination
28. Process Management Activities
• Creating and deleting both user and system processes
• Suspending and resuming processes
• Process scheduling
• Providing mechanisms for process synchronization
• Providing mechanisms for process communication
• Providing mechanisms for deadlock handling
The operating system is responsible for the following
activities in connection with process management:
P1
P2
R1
R2
R1
R2
P1
P2
29. Memory Management
• All instructions and data in memory in order to execute
– Translate the logical address to physical address
• Process terminates => MMU declares that the memory space is available
• Multiprogramming: Memory management manages several processes in memory
– Optimizing CPU utilization and computer response to users
• Ensure memory protection
– Track illegal address
• Memory management activities
– Keeping track of which parts of memory are currently being used and by which process
– Allocating and deallocating memory space as needed
• Introduces Virtual memory
– If the process size is bigger than the RAM size
• Hardware support
Process
Memory
Management Unit
Logical address Physical addressCPU
30. File Management
• OS provides uniform, logical view of information storage
• Abstracts physical properties to logical storage unit - file
• Each medium is controlled by device (i.e., disk drive, tape drive)
• Varying properties include access speed, capacity, data-
transfer rate, access method (sequential or random)
• OS implements the abstract concept of file by managing mass storage
media (disk etc) and devices that control them
• Files usually organized into directories
• Access control on most systems to determine who can access what
• File-System management
• Creating and deleting files and directories
• Primitives to manipulate files and dirs
• Mapping files onto secondary storage
31. Disk Management
Usually disks used to
store data that does
not fit in main
memory or data that
must be kept for a
“long” period of time
• Most of the programs are
stored on disk
Proper management
is of central
importance
Entire speed of
computer operation
depends on disk
subsystem and its
algorithms
OS activities
• Storage allocation (logical
blocks)
• Free-space management
• Disk scheduling
32. I/O Subsystem
• One purpose of OS is to hide peculiarities of hardware
devices from the user
• I/O subsystem responsible for
– Memory management of I/O including buffering (storing data
temporarily while it is being transferred), caching (storing parts of
data in faster storage for performance)
– General device-driver interface
– Drivers for specific hardware devices
I/O devices
Device Drivers
I/O subsystem (general interface)
33. OS design and
structure
• Large complex system
– Designed carefully
• if it is to function properly
• Modified easily
• Common approach
– Partition the tasks into small
components/modules
– Each module must accomplish some
specified task
34. UNIX
• UNIX – consists of two separable parts
– Systems programs
– The kernel
• Consists of everything below the
system-call interface and above
the physical hardware
• Provides the file system, CPU
scheduling, memory
management, and other
operating-system functions; a
large number of functions for
one level
36. Monolithic OS Example
• Application programs can
directly access I/O routines
• Makes the system
vulnerable
• No mode bit
• Limitations in
hardware
• Intel 8088
37. What’s a Kernel?
• AKA: executive, system monitor.
• Controls and mediates access to hardware.
• Implements and supports fundamental
abstractions:
– Processes, files, devices etc.
• Schedules / allocates system resources:
– Memory, CPU, disk, descriptors, etc.
• Enforces security and protection.
• Responds to user requests for service
(system calls).
• Etc…etc…
38. Kernel Design Goals
• Performance: efficiency, speed.
– Utilize resources to capacity with low overhead.
• Stability: robustness, resilience.
– Uptime, graceful degradation.
• Capability: features, flexibility, compatibility.
• Security, protection.
– Protect users from each other & system from bad users.
• Portability.
• Extensibility.
39. Example “Core” Kernel
Applications
System Libraries (libc)
System Call Interface
Hardware
Architecture-Dependent Code
I/O Related Process Related
Scheduler
Memory Management
IPC
File Systems
Networking
Device Drivers
Modules
46. Why secured Operating System?
• Software threats and Internet:
– Network connectivity: Network
connectivity, in particular, the
Internet increased software threats.
– Active content: have capability of
triggering actions automatically
(PDF, MS Office, many others)
– Mobile code: designed to be
transported across a network for
execution on remote hosts
(JavaScript, ActiveX etc)
47. Why secured Operating System?
• Insider Threats: Comes from local
area network which represents even
more serious risk (Gartner research
has estimated that 70% of security
incident costs are due to insider
breaches)
• Complex Software: Complex
software may have defects that can be
exploited by attackers.
48. Discretionary access control (DAC)
• Prior to Linux kernel 2.6, DAC was the only
security framework for Linux.
• In a DAC model, security decisions are based
solely on user identity and ownership of the
objects.
• No protection against malicious or flawed
software.
• Each user has complete discretion over
his/her own objects.
49. DAC
• Only two major categories of users: admin and other.
• Too much privilege.
• Unbounded privilege escalation
50. DAC: Details
• Each process is
associated with some
credentials, which binds
the process to a specific
user or a specific group.
• The use of credentials
requires support both in
the process data structure
and in the resource being
protected.
uid,gid user and group real
identifiers
fuid, egid User and group
effective
identifiers
fsuid,fsgid User and group
effective
identifiers for file
access
groups Supplemental
group identifiers
suid,sgid user and group
saved identifiers
51. DAC: Details
• uid=0 is root, gid=0 is root group.
• If uid=0, kernel bypasses the permission
checks.
• When a process is created, it always
inherit the credentials of its parent.
• Effective credentials can be modified
using system calls; setuid(), setresuid(),
setfsuid() and setreuid()
52. Principle of least privilege
Grant just the minimum possible
privileges to permit a legitimate action:
• Minimized privileged modules: Give a
privilege to only the parts of the
program needing it.
• Minimize privileges granted
• Minimize privileges’ time
Programming Tips:
• Break the program into
separate parts so that only
small and independent
parts require special
privileges.
• If different parts must run
concurrently, use
processes; Threads share
their security privileges
53. Linux Security Modules (LSM) Framework
• Under guidance of Linus, a group was formed to create Linux Security Modules framework
with following principles:
– The Linux kernel still does its normal security checks.
– When kernel needs to decide if access should be granted, it also asks a security module
whether or not the action is okay.
– An administrator should pick the security module he wants.
54. LSM Architecture
• The LSM framework was designed so that almost all of its hooks would be restrictive
• An authoritative hook makes the absolute final decision: if the hook says a request should
be granted, then it's granted no matter what.
• A restrictive hook can only add additional restrictions; it can't grant new permissions.
• Authoritative model is more flexible. But it requires many radical changes to the Linux
kernel.
57. LSM Architecture
So, Five components added to kernel or modified:
1. An interface of security functions.
2. Inserts calls to security functions at various points within the kernel code.
3. Adding security fields to kernel object.
4. Providing functions to allow kernel modules to register and unregister themselves as
security modules.
5. Move capabilities logic into an optional security module.
58. LSM Architecture: 1)Function interface
• security.h file has security_operations structure which defines security functions as function
pointers.
• It defines a global variable:
extern struct security_operations security_ops;
• security.h defines a set of static functions that corresponds to a each security call.
• For each static function x, it executes security_ops->x(). Thus, kernel calls x and x calls
registered function pointer.
59. LSM Architecture: 2) kernel security calls
• LSM inserts calls to security functions at critical points in the kernel code to
perform access control. For example:
– fork.c: Task Create
– namei.c: Virtual File System Create
• LSM inserts calls to security functions at critical points in the kernel code to
manage the security fields. For example:
– inode.c: security_inode_alloc
– inode.c: security_inode_free
– fork.c: security_task_alloc
– fork.c: security_task_free
60. LSM Architecture: 3)
security fields in
kernel objects
•security fields (void * security)
added to various kernel objects.
•The setting of security fields is
handled by security modules.
•These fields are used by security
modules for labeling.
task_struct Task (Process)
linux_binprm Program
Super_block File System
inode Pipe, File, or
Socket
sk_buff Network buffer
net_device Network
device
Kern_ipc_per
m
Semaphore,
Shared
Memory
Segment,
or Message
Queue
61. LSM
Architecture:
4) Module
Registration
• The primary security module
must register itself using
register_security function in
security.c file.
• It only register one module as
primary module.
• The decision of module
stacking is left to primary
module:
– If the secondary module
fails to register using
register_security, it needs
to call mod_reg_security
– This function call the
primary function to decide
about stacking.
int register_security(struct
security_operations *ops) {
if (verify(ops)) {
printk(KERN_DEBUG "%s
could not verify
security_operations
structure.n", __FUNCTION__);
return -EINVAL;
}
if (security_ops !=
&dummy_security_ops)
return -EAGAIN;
security_ops = ops;
return 0;
}
62. LSM Architecture: 5) process capabilities
• The name "capabilities" comes from the now defunct POSIX draft 1003.1e.
• These capabilities are a partitioning of the all powerful root privilege.
• A process has three sets of bitmaps called the inheritable(I), permitted(P), and effective(E)
capabilities.
• Each capability is implemented as a bit in each of these bitmaps which is either set or unset.
• The kernel will check the appropriate bit in the effective set of the process for privileged
operation.
63. Security Enhanced Linux (SELinux) Module
• Developed by National Security Agency (NSA)
• The most comprehensive implementation of LSM.
• Most of SElinux became part of LSM framework.
• SELinux is primary security module in Fedora distribution.
64. SELinux: Object Labeling
• Important objects in the OS are labelled; Processes, files,
inodes, superblocks etc.
• Files persistently labelled via extended attributes.
• Labels are called security contexts.
66. SELinux
Concepts •Identity: each user and process has a
unique identity on the system.
•Roles – Used to specify acceptable actions
from a user. Each role has a set of privileges
assigned to it
67. Kernel Modules
• Modules can be compiled and dynamically linked into kernel address space.
– Useful for device drivers that need not always be resident until needed.
• Keeps core kernel “footprint” small.
– Can be used to “extend” functionality of kernel too!
69. Using Modules
• Module object file is installed in running kernel using insmod
module_name.
– Loads module into kernel address space and links unresolved symbols in
module to symbol table of running kernel.
70. Infinity SD-WAN, IPSEC Module Use case
Access a customized single pane-of-glass dashboard that integrates data
from standard APIs.
Multiple Access technologies and Local breakout Support,
workflow integration.
Integration Options with Other controllers, Containerized Software for
CPE, headless architecture
Fully Modelled and Support MANO Architecture which enhances Uptime
Get real-time operational KPIs and statistics with system alerts and notifications
which translated into business outcomes using Machine Learning
75. Build Your Own Firewall
using FreeBSD
Let’s Get Started!
• First, we need to install VirtualBox
• - Download VirtualBox here
https://www.virtualbox.org/wiki/Downloads
• Next we need to download FreeBSD
• - Visit the official FreeBSD releases page
(https://www.freebsd.org/where.html). The disk
images are listed in order of release date, so the
most recent release can be found at the top of the
page.
• For 32-bit machines, click on i386 - For 64-
bit machines, click on amd64
•
76. Selecting Correct FreeBSD Image
• After clicking the link, you will be redirected to
a file directory containing multiple formats and
versions of the FreeBSD installer.
• For Virtual Machines, the format you are
looking for is the file ending in disk.iso as
highlighted above. Click this file and it will start
downloading the installer.
77. Configuring VirtualBox
• Run VirtualBox to start the initialization process.
• Select the “New” button on the top left of the window to open the configuration window.
Name your operating system as “FreeBSD”, then select FreeBSD from the dropdown menu as
well as the version (32 or 64 bit). Type = BSD
Choose the defaults options for disc setup until you reach the memory allocation section
• Pick 2-4GB memory (as long as the slider does not move into the red)
• Hardware drive Option – Recommend 100GB at least 20GB
• Give the VM some extra processors if your machine can handle it (stay in the green)
78. Installing
FreeBSD
• After VirtualBox has been set up, boot
FreeBSD by clicking the Start button
• VirtualBox will start up a virtual machine and
ask for a virtual optical disk file. This will be
the .iso file that you downloaded through the
FreeBSD website. Navigate to this file by
clicking the small file symbol next to the drop-
down menu. Once selected, the booting
process will continue and the FreeBSD
installer will start.
• The next steps will be to configure FreeBSD.
When in doubt, use the default options
provided. The next few slides will guide you
through this process. You can also follow
the FreeBSD handbook’s installation guide
https://www.freebsd.org/doc/handbook/usin
g-bsdinstall.html to configure and set up your
system.
79. bsdinstall Setup
• After the first boot, users will be directed to the welcome menu.
Arrow keys can be used to navigate through the options while the
Enter key will be used to save the selection and move onto the next
menu. To begin installation, select the first [ Install ] option.
• This will enter bdsinstall, a program that allows users to install
FreeBSD while offering multiple options for customization. For now,
default options will be all that’s needed. The options are a great tool
for more advanced users wanting a more personalized experience.
• First, the installer will display a menu for keymap selection. Highlight
the option to continue with the default keymap and press Enter to use
the default keyboard layout.
• The installer will then allow the user to set a hostname for the system.
Type in a hostname that is unique for your network. Hit Enter again to
save the new name.
• After a hostname is selected and saved, the installer will prompt the
user to select components to install. Stick with the default options and
hit Enter to continue.
80. bsdinstall Setup Cont.
• The installer will guide the user through the process of allocating disk space. This will allow
FreeBSD to set up a partition scheme.
• Choose the Auto (UFS) Guided Disk Setup
• Confirm your selection
• Use the Entire disk (ada0), this will make sure that all allocation disk space will be utilized.
• Select GPT Partitions when prompted for a partition scheme. To navigate, use the arrow keys
and Space to select the GPT option.
• When prompted, complete the setup process and create the disk partition by selecting [ Finish ]
and [ Commit ]. Once these changes have been saved and committed, bsdinstall will start the
FreeBSD installation process. This may take a few minutes.
81. FreeBSD Post-Installation
• While the FreeBSD installation process has been completed, there are a few more configuration options that need to be set
before booting into the newly installed system.
• First, the root password must be set. The root account is a superuser that has access to all files and commands. Characters that
are typed during this section will not be displayed on the screen. Type the new root password and then a second time when
prompted.
• Next, FreeBSD will need to configure the network interfaces found on the computer. Select Enter to continue. The default options
should be used.
• Select [ Yes ] to configure IPv4
• Select [ Yes ] to use DHCP to configure
• Select [ Yes ] to configure IPv6
• Select [ Yes ] to try SLAAC
• At this point you will be directed to a menu with Resolver Configuration values, hit Enter to continue to the next step.
82. FreeBSD Post-
Installation
• The next menu is a large list of regions for time zone
configuration. Use the arrow keys to navigate to the
correct region and hit Enter. Next, navigate to the
correct country or region. Finally, identify and choose
the correct time zone. Select [ Yes] to confirm.
• A menu to set the correct date will be next, while you
can navigate through the menu to set date, choose [
Skip ] if the displayed date is already correct. [ Skip ] the
next menu as the time zone was set up in the previous
configuration menu.
• The next two menus will be to configure what system
services will be started when the system boots. All
services are optional and for now select [ OK ] in both
menus to continue with the default configuration.
• The next step will be to add a user besides root. Because
root has no limits and protection, it is recommended to
log in to the system using a user account to limit the
damage if a mistake is made (even a typo could be
catastrophic).
83. FreeBSD Post-
Installation
• When prompted to create a user account select [ Yes ].
Bsdinstall will follow with a series of prompts to
customize the account. Below is a quick summary of the
information to input. For clarity, text in bold notates
when the user should input text and not just use the
default option:
• Username – username used to log in. Username is case
sensitive and should not contain spaces
• Full name – The user’s full name
• Uid – user ID (leave this blank)
• Login group – The user’s group (leave blank)
• Invite user into other groups? – Additional groups for
the user. Type wheel here, which will give admin
access.
• Login Class – (leave blank)
• Shell – (leave blank)
• Home directory – The user’s home directory (leave
blank)
• Home directory permissions – Permissions on the user’s
home directory (leave blank)
84. FreeBSD Post-
Installation
• Use password-based authentication? – Prompts user to input
password at login (leave blank)
• Use an empty password? – Option to use a blank password,
though this is insecure (leave blank)
• Use a random password? – Option for a randomized
password (leave blank)
• Enter password – The password for this user. Characters
typed will not show on screen.
• Enter password again – The password must be typed again
for verification.
• Lock out the account after creation? – Option to lock out use
(leave blank)
• User will be prompted to review the summary. If a mistake
was made enter no and try again. If everything is correct,
enter yes to finalize and create the new user. The menu will
then ask if the user wants to create further user accounts, for
now enter no.
Final configuration: Use the arrow keys to navigate to Handbook
and press Enter to install the FreeBSD Handbook. Select [ Ok ] to
begin installation.
Navigate to Exit and hit Enter to finalize changes. Select [ No ]
when asked if further manual configuration is required and [
Reboot ] to complete the FreeBSD installation process.
85. Saving Your Configuration
• - Once FreeBSD has been properly configured a window will appear asking if you
would like to reboot to set the changes. Select “yes” and wait until the FreeBSD
booting page appears again. Once this happens, close the virtual machine window
and select “Power off the machine”.
• - On the main VirtualBox application, click the section (on the lower right side of
the window) that says “Storage.” A new window should appear showing the
storage options.
• - Under the main “Controller: IDE” there will be two options. One will be the hard
disk that VirtualBox created for the system (it will have a square blue hard drive
icon) and the other is the original FreeBSD download (with a light blue disk icon).
Right click the sub-storage with the disk icon and select “Remove” from the drop-
down menu.
• - Select “OK” to save your changes and return to the main VirtualBox application.
Click “Start” again and the FreeBSD virtual machine should now boot in its
configured form. You now have FreeBSD installed on your machine!
86. Final Steps
• In order to download packages you need to be logged into, or emulate the root user.
•
$ su
• Install the VirtualBox guest addition packages:
• $ pkg install emulators/virtualbox-ose-additions
• Open the startup service configuration file located at /etc/rc.conf using the built in text editor
ee:
• $ ee /etc/rc.conf
• To edit the file using ee, navigate using the arrow keys and type the text you need to enter.
Once you are happy with your changes, press “<Esc> + <Enter>” and press “a” when given the
option to save changes.)
• Add these two lines to the bottom of the file and save your changes:
• vboxguest_enable=“YES”
• vboxservice_enable-=“YES”
87. Just a Few More Steps
• Enter the following commands:
• $ sysrc dbus_enable=YES
• $ dbus-uuidgen > /etc/machine-id
• $ pkg install -y sudo
• $ visudo (we will use the vi editor this time to edit sudo )
• Within the sudo config type /wheel press Enter and uncomment the
line below to allow all members of the wheel group to use sudo (in vi
you can type the following to accomplish this task: j0xxZZ) ( pressing
j moves down, 0 moves to the beginning of a line, x deletes one
character, ZZ is saves and quits)
• $ reboot (you can also type init 6 to reboot)
88. Set up Command History
•
As regular user run the following:
• Enable command history in tcsh so you can have a record of the commands you’ve typed.
This can be an extremely valuable tool that you’ll find yourself using a lot. Type history to
see the command history
• $ ee .tcshrc (add the following contents)
•
set history = 99999999
• set savehist = (99999999 merge)
• set histfile = ~/.tcsh_history
Save file
•