Watchdog Documentation Release 0.9.0

Total Page:16

File Type:pdf, Size:1020Kb

Watchdog Documentation Release 0.9.0 watchdog Documentation Release 0.9.0 Yesudeep Mangalapilly Oct 30, 2019 Contents 1 Directory monitoring made easy with3 2 Easy installation 5 3 User’s Guide 7 3.1 Installation................................................7 3.2 Quickstart................................................ 10 3.3 API Reference.............................................. 10 3.4 Contributing............................................... 21 4 Contribute 23 5 Indices and tables 25 Python Module Index 27 Index 29 i ii watchdog Documentation, Release 0.9.0 Python API library and shell utilities to monitor file system events. Works on Python 2.7 and 3.4+. If you want to use an old version of Python, you should stick with watchdog < 0.10.0. Contents 1 watchdog Documentation, Release 0.9.0 2 Contents CHAPTER 1 Directory monitoring made easy with • A cross-platform API. • A shell tool to run commands in response to directory changes. Get started quickly with a simple example in Quickstart. 3 watchdog Documentation, Release 0.9.0 4 Chapter 1. Directory monitoring made easy with CHAPTER 2 Easy installation You can use pip to install watchdog quickly and easily: $ pip install watchdog Need more help with installing? See Installation. 5 watchdog Documentation, Release 0.9.0 6 Chapter 2. Easy installation CHAPTER 3 User’s Guide 3.1 Installation watchdog requires Python 2.7 or 3.4+ to work. If you are using a Linux/FreeBSD/Mac OS X system, you already have Python installed. However, you may wish to upgrade your system to Python 2.7 at least, because this version comes with updates that can reduce compatibility problems. See a list of Dependencies. 3.1.1 Installing from PyPI using pip $ python -m pip install watchdog # or to install the watchmedo utility: $ python -m pip install |project_name|[watchmedo] 3.1.2 Installing from source tarballs $ wget -c http://pypi.python.org/packages/source/w/watchdog/watchdog-0.9.0. ,!tar.gz $ tar zxvf watchdog-0.9.0.tar.gz $ cd watchdog-0.9.0 $ python -m pip install -e . # or to install the watchmedo utility: $ python -m pip install -e .[watchmedo] 3.1.3 Installing from the code repository 7 watchdog Documentation, Release 0.9.0 $ git clone --recursive git://github.com/gorakhargosh/watchdog.git $ cd watchdog $ python -m pip install -e. # or to install the watchmedo utility: $ python -m pip install -e.[watchmedo] 3.1.4 Dependencies watchdog depends on many libraries to do its job. The following is a list of dependencies you need based on the operating system you are using. Operating system Windows Linux 2.6 BSD Mac OS X/ Dependency (row) Darwin XCode Yes pathtools Yes Yes Yes Yes The following is a list of dependencies you need based on the operating system you are using the watchmedo utility. Operating system Windows Linux 2.6 BSD Mac OS X/ Dependency (row) Darwin PyYAML Yes Yes Yes Yes argh Yes Yes Yes Yes Installing Dependencies The watchmedo script depends on PyYAML which links with LibYAML. On Mac OS X, you can use homebrew to install LibYAML: brew install libyaml On Linux, use your favorite package manager to install LibYAML. Here’s how you do it on Ubuntu: sudo aptitude install libyaml-dev On Windows, please install PyYAML using the binaries they provide. 3.1.5 Supported Platforms (and Caveats) watchdog uses native APIs as much as possible falling back to polling the disk periodically to compare directory snapshots only when it cannot use an API natively-provided by the underlying operating system. The following operating systems are currently supported: Warning: Differences between behaviors of these native API are noted below. 8 Chapter 3. User’s Guide watchdog Documentation, Release 0.9.0 Linux 2.6+ Linux kernel version 2.6 and later come with an API called inotify that programs can use to monitor file system events. Note: On most systems the maximum number of watches that can be created per user is limited to 8192. watchdog needs one per directory to monitor. To change this limit, edit /etc/sysctl.conf and add: fs.inotify.max_user_watches=16384 Mac OS X The Darwin kernel/OS X API maintains two ways to monitor directories for file system events: • kqueue • FSEvents watchdog can use whichever one is available, preferring FSEvents over kqueue(2). kqueue(2) uses open file descriptors for monitoring and the current implementation uses Mac OS X File System Monitoring Performance Guidelines to open these file descriptors only to monitor events, thus allowing OS X to unmount volumes that are being watched without locking them. Note: More information about how watchdog uses kqueue(2) is noted in BSD Unix variants. Much of this information applies to Mac OS X as well. BSD Unix variants BSD variants come with kqueue which programs can use to monitor changes to open file descrip- tors. Because of the way kqueue(2) works, watchdog needs to open these files and directories in read-only non-blocking mode and keep books about them. watchdog will automatically open file descriptors for all new files/directories created and close those for which are deleted. Note: The maximum number of open file descriptor per process limit on your operating system can hinder watchdog’s ability to monitor files. You should ensure this limit is set to at least 1024 (or a value suitable to your usage). The following command appended to your ~/.profile configuration file does this for you: ulimit-n 1024 Windows Vista and later The Windows API provides the ReadDirectoryChangesW. watchdog currently contains implementation for a synchronous approach requiring additional API functionality only available in Windows Vista and later. Note: Since renaming is not the same operation as movement on Windows, watchdog tries hard to convert re- names to movement events. Also, because the ReadDirectoryChangesW API function returns rename/movement events for directories even before the underlying I/O is complete, watchdog may not be able to completely scan the moved directory in order to successfully queue movement events for files and directories within it. Note: Since the Windows API does not provide information about whether an object is a file or a directory, delete events for directories may be reported as a file deleted event. OS Independent Polling watchdog also includes a fallback-implementation that polls watched directories for changes by periodically comparing snapshots of the directory tree. 3.1. Installation 9 watchdog Documentation, Release 0.9.0 3.2 Quickstart Below we present a simple example that monitors the current directory recursively (which means, it will traverse any sub-directories) to detect changes. Here is what we will do with the API: 1. Create an instance of the watchdog.observers.Observer thread class. 2. Implement a subclass of watchdog.events.FileSystemEventHandler (or as in our case, we will use the built-in watchdog.events.LoggingEventHandler, which already does). 3. Schedule monitoring a few paths with the observer instance attaching the event handler. 4. Start the observer thread and wait for it generate events without blocking our main thread. By default, an watchdog.observers.Observer instance will not monitor sub-directories. By passing recursive=True in the call to watchdog.observers.Observer.schedule() monitoring entire direc- tory trees is ensured. 3.2.1 A Simple Example The following example program will monitor the current directory recursively for file system changes and simply log them to the console: import sys import logging from watchdog.observers import Observer from watchdog.events import LoggingEventHandler if __name__ =="__main__": logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S') path= sys.argv[1] if len(sys.argv)>1 else '.' event_handler= LoggingEventHandler() observer= Observer() observer.schedule(event_handler, path, recursive=True) observer.start() try: while observer.isAlive(): observer.join(1) except KeyboardInterrupt: observer.stop() observer.join() To stop the program, press Control-C. 3.3 API Reference 3.3.1 watchdog.events module watchdog.events synopsis File system events and event handlers. author [email protected] (Yesudeep Mangalapilly) 10 Chapter 3. User’s Guide watchdog Documentation, Release 0.9.0 Event Classes class watchdog.events.FileSystemEvent(src_path) Bases: object Immutable type that represents a file system event that is triggered when a change occurs on the monitored file system. All FileSystemEvent objects are required to be immutable and hence can be used as keys in dictionaries or be added to sets. event_type = None The type of the event as a string. is_directory = False True if event was emitted for a directory; False otherwise. is_synthetic = False True if event was synthesized; False otherwise. These are events that weren’t actually broadcast by the OS, but are presumed to have happened based on other, actual events. src_path Source path of the file system object that triggered this event. class watchdog.events.FileSystemMovedEvent(src_path, dest_path) Bases: watchdog.events.FileSystemEvent File system event representing any kind of file system movement. dest_path The destination path of the move event. class watchdog.events.FileMovedEvent(src_path, dest_path) Bases: watchdog.events.FileSystemMovedEvent File system event representing file movement on the file system. class watchdog.events.DirMovedEvent(src_path, dest_path) Bases: watchdog.events.FileSystemMovedEvent File system event representing directory movement on the file system. class watchdog.events.FileModifiedEvent(src_path) Bases: watchdog.events.FileSystemEvent File system event representing
Recommended publications
  • Advancing Mac OS X Rootkit Detecron
    Advancing Mac OS X Rootkit Detec4on Andrew Case (@attrc) Volatility Foundation Golden G. Richard III (@nolaforensix) University of New Orleans 2 hot research areas State of Affairs more established Live Forensics and Tradional Storage Memory Analysis Forensics Digital Forensics Reverse Engineering Incident Response Increasingly encompasses all the others Copyright 2015 by Andrew Case and Golden G. Richard III 3 Where’s the Evidence? Files and Filesystem Applica4on Windows Deleted Files metadata metadata registry Print spool Hibernaon Temp files Log files files files Browser Network Slack space Swap files caches traces RAM: OS and app data Volale Evidence structures Copyright 2015 by Andrew Case and Golden G. Richard III 4 Volale Evidence 1 011 01 1 0 1 111 0 11 0 1 0 1 0 10 0 1 0 1 1 1 0 0 1 0 1 1 0 0 1 Copyright 2015 by Andrew Case and Golden G. Richard III 5 Awesomeness Progression: File Carving Can carve Chaos: files, but More can't Faster Almost not very accurate Hurray! carve files well Tools Manual File type Fragmentaon, appear, MulDthreading, hex editor aware damned but have beer design stuff carving, et al spinning disks! issues Images: hLps://easiersaidblogdotcom.files.wordpress.com/2013/02/hot_dogger.jpg hLp://cdn.bigbangfish.com/555/Cow/Cow-6.jpg, hLp://f.tqn.com/y/bbq/1/W/U/i/Big_green_egg_large.jpg hLp://i5.walmarDmages.com/dfw/dce07b8c-bb22/k2-_95ea6c25-e9aa-418e-a3a2-8e48e62a9d2e.v1.jpg Copyright 2015 by Andrew Case and Golden G. Richard III 6 Awesomeness Progression: Memory Forensics Pioneering Chaos: More, efforts Beyond run more, show great Windows ?? strings? more promise pt_finder et al More aenDon Manual, Mac, … awesome but to malware, run strings, Linux, BSD liLle context limited filling in the gaps funcDonality Images: hLps://s-media-cache-ak0.pinimg.com/736x/75/5a/37/755a37727586c57a19d42caa650d242e.jpg,, hLp://img.photobucket.com/albums/v136/Hell2Pay77/SS-trucks.jpg hLp://skateandannoy.com/wp-content/uploads/2007/12/sportsbars.jpg, hLp://gainesvillescene.com/wp-content/uploads/2013/03/dog-longboard.jpg Copyright 2015 by Andrew Case and Golden G.
    [Show full text]
  • Chapter 1. Origins of Mac OS X
    1 Chapter 1. Origins of Mac OS X "Most ideas come from previous ideas." Alan Curtis Kay The Mac OS X operating system represents a rather successful coming together of paradigms, ideologies, and technologies that have often resisted each other in the past. A good example is the cordial relationship that exists between the command-line and graphical interfaces in Mac OS X. The system is a result of the trials and tribulations of Apple and NeXT, as well as their user and developer communities. Mac OS X exemplifies how a capable system can result from the direct or indirect efforts of corporations, academic and research communities, the Open Source and Free Software movements, and, of course, individuals. Apple has been around since 1976, and many accounts of its history have been told. If the story of Apple as a company is fascinating, so is the technical history of Apple's operating systems. In this chapter,[1] we will trace the history of Mac OS X, discussing several technologies whose confluence eventually led to the modern-day Apple operating system. [1] This book's accompanying web site (www.osxbook.com) provides a more detailed technical history of all of Apple's operating systems. 1 2 2 1 1.1. Apple's Quest for the[2] Operating System [2] Whereas the word "the" is used here to designate prominence and desirability, it is an interesting coincidence that "THE" was the name of a multiprogramming system described by Edsger W. Dijkstra in a 1968 paper. It was March 1988. The Macintosh had been around for four years.
    [Show full text]
  • Kqueue Madness Have to Ponder These Questions Or Write a Began
    Kqueuemadness by Randall Stewart ome time ago I was asked to participate in the creation of a Performance SEnhancing Proxy (PEP) for TCP. The concept behind a PEP is to split a TCP connec- tion into three separate connections. The first connection (1) is the normal TCP con- nection that goes from the client towards the server (the client is usually unaware that its connection is not going to the end server). The next connection (2) goes between two middle boxes (M1 and M2), the first middle box (M1) terminates the connection of the client pretending to be the server and uses a different connection to talk to the tail middle box (M2). This middle connection provides the “enhanced” service to the end-to-end connection. The final connection (3) goes between the tail middle box (M2) and the actual server. The figure below shows a diagram of such a connection. A connection (1) (2) (3) through a PEP Client M1 M2 Server 24 FreeBSD Journal Now, as you can imagine, if you have a very event for a socket descriptor, yet do not close busy PEP you could end up with thousands of the socket? TCP connections being managed by M1 and b) Could I possibly see stale queued events M2. In such an environment using poll(2) or that were yet to be read? select(2) comes with an extreme penalty. Each c) How does connect interact with kqueue? time a I/O event completes, every one of those d) What about listen? thousands of connections would need to be e) What is the difference between all of the looked at to see if an event occurred on them, kqueue flags that I can add on to events and and then the appropriate structure would need when do I use them properly? to be reset to look for an event next time.
    [Show full text]
  • Efficient Parallel I/O on Multi-Core Architectures
    Lecture series title/ lecture title Efficient parallel I/O on multi-core architectures Adrien Devresse CERN IT-SDC-ID Thematic CERN School of Computing 2014 1 Author(s) names – Affiliation Lecture series title/ lecture title How to make I/O bound application scale with multi-core ? What is an IO bound application ? → A server application → A job that accesses big number of files → An application that uses intensively network 2 Author(s) names – Affiliation Lecture series title/ lecture title Stupid example: Simple server monothreaded // create socket socket_desc = socket(AF_INET , SOCK_STREAM , 0); // bind the socket bind(socket_desc,(struct sockaddr *)&server , sizeof(server)); listen(socket_desc , 100); //accept connection from an incoming client while(1){ // declarations client_sock = accept(socket_desc, (struct sockaddr *)&client, &c); //Receive a message from client while( (read_size = recv(client_sock , client_message , 2000 , 0)) > 0{ // Wonderful, we have a client, do some useful work std::string msg("hello bob"); write(client_sock, msg.c_str(), msg.size()); } } 3 Author(s) names – Affiliation Lecture series title/ lecture title Stupid example: Let's make it parallel ! int main(int argc, char** argv){ // creat socket void do_work(int socket){ socket_desc = socket(AF_INET , SOCK_STREAM , 0); //Receive a message while( (read_size = // bind the socket recv(client_sock , bind(socket_desc, server , sizeof(server)); client_message , 2000 , 0)) > 0{ listen(socket_desc , 100); // Wonderful, we have a client // useful works //accept connection
    [Show full text]
  • Mac OS X for UNIX Users the Power of UNIX with the Simplicity of Macintosh
    Mac OS X for UNIX Users The power of UNIX with the simplicity of Macintosh. Features Mac OS X version 10.3 “Panther” combines a robust and open UNIX-based foundation with the richness and usability of the Macintosh interface, bringing UNIX technology Open source, standards-based UNIX to the mass market. Apple has made open source and standards a key part of its foundation strategy and delivers an operating system built on a powerful UNIX-based foundation •Based on FreeBSD 5 and Mach 3.0 • Support for POSIX, Linux, and System V APIs that is innovative and easy to use. • High-performance math libraries, including There are over 8.5 million Mac OS X users, including scientists, animators, developers, vector/DSP and PowerPC G5 support and system administrators, making Mac OS X the most widely used UNIX-based desktop • Optimized X11 window server for UNIX GUIs operating system. In addition, Mac OS X is the only UNIX-based environment that •Open source code available via the natively runs Microsoft Office, Adobe Photoshop, and thousands of other consumer Darwin project applications—all side by side with traditional command-line, X11, and Java applications. Standards-based networking For notebook computer users, Mac OS X delivers full power management and mobility •Open source TCP/IP-based networking support for Apple’s award-winning PowerBook G4. architecture, including IPv4, IPv6, and L2TP/IPSec •Interoperability with NFS, AFP, and Windows (SMB/CIFS) file servers •Powerful web server (Apache) •Open Directory 2, an LDAP-based directory services
    [Show full text]
  • Fsmonitor: Scalable File System Monitoring for Arbitrary Storage Systems
    FSMonitor: Scalable File System Monitoring for Arbitrary Storage Systems Arnab K. Paul∗, Ryan Chardy, Kyle Chardz, Steven Tueckez, Ali R. Butt∗, Ian Fostery;z ∗Virginia Tech, yArgonne National Laboratory, zUniversity of Chicago fakpaul, [email protected], frchard, [email protected], fchard, [email protected] Abstract—Data automation, monitoring, and management enable programmatic management, and even autonomously tools are reliant on being able to detect, report, and respond manage the health of the system. Enabling scalable, reliable, to file system events. Various data event reporting tools exist for and standardized event detection and reporting will also be of specific operating systems and storage devices, such as inotify for Linux, kqueue for BSD, and FSEvents for macOS. How- value to a range of infrastructures and tools, such as Software ever, these tools are not designed to monitor distributed file Defined CyberInfrastructure (SDCI) [14], auditing [9], and systems. Indeed, many cannot scale to monitor many thousands automating analytical pipelines [11]. Such systems enable of directories, or simply cannot be applied to distributed file automation by allowing programs to respond to file events systems. Moreover, each tool implements a custom API and and initiate tasks. event representation, making the development of generalized and portable event-based applications challenging. As file systems Most storage systems provide mechanisms to detect and grow in size and become increasingly diverse, there is a need report data events, such as file creation, modification, and for scalable monitoring solutions that can be applied to a wide deletion. Tools such as inotify [20], kqueue [18], and FileSys- range of both distributed and local systems.
    [Show full text]
  • Vladimir Kirillov @Darkproger Ops
    VOXOZ Vladimir Kirillov @darkproger ops E2MPLATFORMS let’s reimagine Hack Deploy Scale Hack life’s too short to Deploy spend time on the environment Scale Hack quickly Hack reproducibly Hack no frictions no “works on Hack my machine” excuses your epoll into my kqueue your inotify into my fsevents Y UR CentOS runs R14B03? so I compiled this port and copied it to your Linux box and it doesn’t run ;( ! Deploy ! Deploy no moving parts 3rd-party software: Moving OS parts runtime/VM libraries 3-rd party using = being a software maintainer isolate breakage 3-rd party as much as software possible state ! Deploy = mutating state too many Linux abstractions users ACLs SELinux Linux networking stack package managers filesystems erts-5.9.1/bin/escript: /lib/libc.so.6: version GLIBC_2.14 not found half-deploys speed Problems rollbacks chef / puppet # apt-get install linux-image-3.2.0-4-amd64 ... Setting up linux-image-3.2.0-4-amd64 (3.2.51-1) ... Running depmod. cp: cannot stat `/boot/initrd.img-3.2.0-4-amd64': No such file or directory Failed to copy /boot/initrd.img-3.2.0-4-amd64 to /initrd.img . dpkg: error processing linux-image-3.2.0-4-amd64 (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: linux-image-3.2.0-4-amd64 E: Sub-process /usr/bin/dpkg returned an error code (1) Breaking zerocopy userspace abstractions netmap Breaking /dev/blk abstractions paravirt Scaling spawn X instances of Scaling $that spawn X instances of $that Scaling ! doesn’t always work riak_core
    [Show full text]
  • Scaliendb: Designing and Implementing a Distributed Database Using Paxos
    ScalienDB: Designing and Implementing a Distributed Database using Paxos Marton Trencseni, [email protected] Attila Gazso, [email protected] Abstract ScalienDB is a scalable, replicated database built on top of the Paxos algorithm. It was developed from 2010 to 2012, when the startup backing it failed. This paper discusses the design decisions of the distributed database, describes interesting parts of the C++ codebase and enumerates lessons learned putting ScalienDB into production at a handful of clients. The source code is available on Github under the AGPL license, but it is no longer developed or maintained. 1 Introduction Scalien was a NoSQL startup based in Budapest, Hungary, founded by the two authors in 2009. The company operated until the end of 2012, when the company failed because we were unable to secure venture capital. Scalien's first database technology was called Keyspace and was written in 2009 [1]. In 2010, building on the Keyspace experiences, we started working on ScalienDB after receiving minimal funding in the form of a development contract from a client. Our goal with ScalienDB was to build a NoSQL product that has strong consistency guarantees about data similar to traditional SQL databases, or at least stronger guarantees than other NoSQL databases. This was to be ScalienDB's unique selling point. In ret- rospect Scalien suffered from a severe lack of product-market fit. NoSQL databases were called upon in use-cases when consistency guarantees were not that important. We also had a hard time communicating the strong points of ScalienDB, as these are very deep technical concepts (such as consistency in replication) that are hard to explain even to fel- low engineers, let alone at a business meeting, but are easily countered by the competition's similar but vague claims.
    [Show full text]
  • Remote Filesystem Event Notification and Processing for Distributed Systems
    ICDT 2021 : The Sixteenth International Conference on Digital Telecommunications Remote Filesystem Event Notification and Processing for Distributed Systems Kushal Thapa†‡, Vinay Lokesh*#, Stan McClellan†§ †Ingram School of Engineering *Dept. of Computer Science Texas State University San Marcos, TX, USA e-mail: ‡[email protected], #[email protected], §[email protected] Abstract— Monitoring and safeguarding the integrity of files networking solutions and architectures allow the users to in local filesystems is imperative to computer systems for many circumvent certain firewall restrictions, thus increasing purposes, including system security, data acquisition, and other complexity while introducing security risks. Here, we leverage processing requirements. However, distributed systems may the well-known network architecture where an Internet- have difficulty in monitoring remote filesystem events even reachable system acts as a middleman to establish a secure, though asynchronous notification of filesystem events on a bidirectional network connection between firewalled devices. remote, resource-constrained device can be very useful. This This approach is not new, however, comprehensive analysis paper discusses several aspects of monitoring remote filesystem of various parameters is difficult to obtain, so we provide some events in a loosely-coupled and distributed architecture. This results and discussion regarding the various configuration paper investigates a simple and scalable technique to enable secure remote file system monitoring using existing Operating options and performance of this architecture. System resident tools with minimum overhead. In Section II of this paper, we describe various tools that are generally used to monitor local filesystem events. We also Keywords— Secure Remote Filesystem Monitoring; Firewall; briefly discuss about Secure Shell Protocol Filesystem Distributed Architecture; Secure Network Communication; SSH; (SSHFS) [9] and Secure Shell Protocol (SSH) [12].
    [Show full text]
  • GNU Direvent Version 5.2, 13 July 2019
    GNU Direvent version 5.2, 13 July 2019 Sergey Poznyakoff. Copyright c 2013-2016 Sergey Poznyakoff Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sec- tions, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”. i Short Contents 1 Introduction ......................................... 1 2 Overview ............................................ 2 3 Quick Start .......................................... 4 4 Invocation ........................................... 6 5 Configuration ........................................ 8 6 System Dependencies ................................. 18 7 How to Report a Bug ................................. 20 A GNU Free Documentation License....................... 21 Concept Index .......................................... 29 ii Table of Contents 1 Introduction..................................... 1 2 Overview ........................................ 2 3 Quick Start...................................... 4 4 Invocation ....................................... 6 5 Configuration ................................... 8 5.1 Configuration Syntax........................................... 8 5.1.1 Comments ................................................ 8 5.1.2 Pragmatic Comments ..................................... 8 5.1.3 Statements ...............................................
    [Show full text]
  • Computing Science: Master's Thesis
    Computing Science: Master’s Thesis Radboud University Nijmegen Implementing Asynchronous I/O in iTasks January 2021 - July 2021 Author: Supervisor: ing. Gijs Alberts dr. Pieter Koopman Second supervisor: dr. Bas Lijnse Second reader: Mart Lubbers MSc July 7, 2021 Abstract iTasks is a general-purpose framework for developing web applications. It is implemented in the pure functional programming language Clean. iTasks allows to develop web applications in a task-oriented manner. The idea is that end-users that develop web applications using iTasks should only have to specify what tasks should be accomplished using the web application. The iTasks framework takes care of the technical realization of these tasks. iTasks uses network I/O to communicate with other programs (e.g: browsers) over a network connection. IPC (inter-process communication) is used by iTasks to be able to communicate with programs that are executed on the same computer. This thesis focuses on the network I/O and IPC functionality that is provided by iTasks. This is a small part of the functionality that is provided by the iTasks framework as a whole. More specifically, the network I/O functionality that is provided by iTasks concerns the iTasks HTTP server. The iTasks HTTP server is used to serve the web applications that are developed using iTasks. Furthermore, it involves the functionality that iTasks provides to perform network I/O as an end-user. The IPC functionality of iTasks enables the end-user to execute an external process through an iTasks program. An external process can be seen as any executable computer program.
    [Show full text]
  • Freenas® 11.2-U3 User Guide
    FreeNAS® 11.2-U3 User Guide March 2019 Edition FreeNAS® is © 2011-2019 iXsystems FreeNAS® and the FreeNAS® logo are registered trademarks of iXsystems FreeBSD® is a registered trademark of the FreeBSD Foundation Written by users of the FreeNAS® network-attached storage operating system. Version 11.2 Copyright © 2011-2019 iXsystems (https://www.ixsystems.com/) CONTENTS Welcome .............................................................. 8 Typographic Conventions ..................................................... 10 1 Introduction 11 1.1 New Features in 11.2 .................................................... 11 1.1.1 RELEASE-U1 ..................................................... 14 1.1.2 U2 .......................................................... 14 1.1.3 U3 .......................................................... 15 1.2 Path and Name Lengths .................................................. 16 1.3 Hardware Recommendations ............................................... 17 1.3.1 RAM ......................................................... 17 1.3.2 The Operating System Device ........................................... 18 1.3.3 Storage Disks and Controllers ........................................... 18 1.3.4 Network Interfaces ................................................. 19 1.4 Getting Started with ZFS .................................................. 20 2 Installing and Upgrading 21 2.1 Getting FreeNAS® ...................................................... 21 2.2 Preparing the Media ...................................................
    [Show full text]