Simple but Powerful Text-Processing Commands

Total Page:16

File Type:pdf, Size:1020Kb

Simple but Powerful Text-Processing Commands Minera¸c~aode Dados Aplicada Simple but Powerful Text-Processing Commands Lo¨ıcCerf August, 21st 2019 DCC { ICEx { UFMG Simple but powerful text-processing commands Part of the Unix philosophy Part of the Unix philosophy Doug McIlroy (inventor of Unix pipes). In A Quarter-Century of Unix (1994): Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal inter- face. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 2 / 22 N Most Free operating systems are POSIX-compliant: GNU/Linux, BSD, illumos, Haiku, etc. Mac OS X is too. Windows is not but Cygwin is a good compatibility layer. Simple but powerful text-processing commands Utilities from the 70s The Unix operating system came with specific text-processing commands. They are still very useful today. Since 1984, the GNU project has improved them a lot (new options, improved efficiency). The original commands are part of POSIX standards. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 3 / 22 N Simple but powerful text-processing commands Utilities from the 70s The Unix operating system came with specific text-processing commands. They are still very useful today. Since 1984, the GNU project has improved them a lot (new options, improved efficiency). The original commands are part of POSIX standards. Most Free operating systems are POSIX-compliant: GNU/Linux, BSD, illumos, Haiku, etc. Mac OS X is too. Windows is not but Cygwin is a good compatibility layer. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 3 / 22 N Simple but powerful text-processing commands The shell The shell interprets every command fired in a terminal or in an executable file, whose first line indicates the shell to use: #!/bin/sh (any POSIX-compliant shell) or #!/bin/bash or #!/bin/dash or #!/bin/zsh, etc. A 2-line shell script #!/bin/sh # Get started with the MDA exercises wget dcc.ufmg.br/~lcerf/data.tar.xz -O - | tar -xJ mv data data-$(date +%m%d) 2> /dev/null Lo¨ıcCerf Minera¸c~aode Dados Aplicada 4 / 22 N Simple but powerful text-processing commands Geeks and repetitive tasks Lo¨ıcCerf Minera¸c~aode Dados Aplicada 5 / 22 N </> redirects the standard I/O from/to a file. A pipe binds an output stream to an input stream. It can bear a name (in argument of mkfifo) but most workflows only need the unnamed pipe, |. | redirects the standard output of the command on the left to the standard input of the command on the right. Simple but powerful text-processing commands Standard I/O POSIX text processing commands: process the input stream of text line by line; by default: read from the standard input (the keyboard if not redirected); write to the standard output (the terminal if not redirected). Lo¨ıcCerf Minera¸c~aode Dados Aplicada 6 / 22 N Simple but powerful text-processing commands Standard I/O POSIX text processing commands: process the input stream of text line by line; by default: read from the standard input (the keyboard if not redirected); write to the standard output (the terminal if not redirected). </> redirects the standard I/O from/to a file. A pipe binds an output stream to an input stream. It can bear a name (in argument of mkfifo) but most workflows only need the unnamed pipe, |. | redirects the standard output of the command on the left to the standard input of the command on the right. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 6 / 22 N the man command (e. g., man wget) gives their specifications; the info command (e. g., info wget) often provides more detailed explanations, examples of use, etc.; long options are prefixed with --, short (i. e., one letter) options with - and can be grouped (e. g., -xJ equates to -x -J); options can take (right after) an argument; - means the standard input (/dev/stdin) or the standard output (/dev/stdout). wget and tar are two GNU commands. Like all GNU commands: Simple but powerful text-processing commands Getting the data $ wget dcc.ufmg.br/~lcerf/data.tar.xz -O - | tar -xJ Lo¨ıcCerf Minera¸c~aode Dados Aplicada 7 / 22 N the info command (e. g., info wget) often provides more detailed explanations, examples of use, etc.; long options are prefixed with --, short (i. e., one letter) options with - and can be grouped (e. g., -xJ equates to -x -J); options can take (right after) an argument; - means the standard input (/dev/stdin) or the standard output (/dev/stdout). Simple but powerful text-processing commands Getting the data $ wget dcc.ufmg.br/~lcerf/data.tar.xz -O - | tar -xJ wget and tar are two GNU commands. Like all GNU commands: the man command (e. g., man wget) gives their specifications; Lo¨ıcCerf Minera¸c~aode Dados Aplicada 7 / 22 N long options are prefixed with --, short (i. e., one letter) options with - and can be grouped (e. g., -xJ equates to -x -J); options can take (right after) an argument; - means the standard input (/dev/stdin) or the standard output (/dev/stdout). Simple but powerful text-processing commands Getting the data $ wget dcc.ufmg.br/~lcerf/data.tar.xz -O - | tar -xJ wget and tar are two GNU commands. Like all GNU commands: the man command (e. g., man wget) gives their specifications; the info command (e. g., info wget) often provides more detailed explanations, examples of use, etc.; Lo¨ıcCerf Minera¸c~aode Dados Aplicada 7 / 22 N options can take (right after) an argument; - means the standard input (/dev/stdin) or the standard output (/dev/stdout). Simple but powerful text-processing commands Getting the data $ wget dcc.ufmg.br/~lcerf/data.tar.xz -O - | tar -xJ wget and tar are two GNU commands. Like all GNU commands: the man command (e. g., man wget) gives their specifications; the info command (e. g., info wget) often provides more detailed explanations, examples of use, etc.; long options are prefixed with --, short (i. e., one letter) options with - and can be grouped (e. g., -xJ equates to -x -J); Lo¨ıcCerf Minera¸c~aode Dados Aplicada 7 / 22 N Simple but powerful text-processing commands Getting the data $ wget dcc.ufmg.br/~lcerf/data.tar.xz -O - | tar -xJ wget and tar are two GNU commands. Like all GNU commands: the man command (e. g., man wget) gives their specifications; the info command (e. g., info wget) often provides more detailed explanations, examples of use, etc.; long options are prefixed with --, short (i. e., one letter) options with - and can be grouped (e. g., -xJ equates to -x -J); options can take (right after) an argument; - means the standard input (/dev/stdin) or the standard output (/dev/stdout). Lo¨ıcCerf Minera¸c~aode Dados Aplicada 7 / 22 N The solution is named less. It is the viewer for man pages. A few commands inside less: Page-up/down, R (repaint), F (follow), [0-9]+ (scroll that many lines), / (search forwards for a regexp), ? (search backwards for a regexp), q (quit). Exercise Find, with less, the IP address of the first Brazilian visitor after the 100th line of DistroWatch/20100428/debian. Simple but powerful text-processing commands Reading a large text file Your favorite text editor (Vim or Emacs?) loads the entire file in main memory, a problem if it weights gigabytes or more. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 8 / 22 N Exercise Find, with less, the IP address of the first Brazilian visitor after the 100th line of DistroWatch/20100428/debian. Simple but powerful text-processing commands Reading a large text file Your favorite text editor (Vim or Emacs?) loads the entire file in main memory, a problem if it weights gigabytes or more. The solution is named less. It is the viewer for man pages. A few commands inside less: Page-up/down, R (repaint), F (follow), [0-9]+ (scroll that many lines), / (search forwards for a regexp), ? (search backwards for a regexp), q (quit). Lo¨ıcCerf Minera¸c~aode Dados Aplicada 8 / 22 N Simple but powerful text-processing commands Reading a large text file Your favorite text editor (Vim or Emacs?) loads the entire file in main memory, a problem if it weights gigabytes or more. The solution is named less. It is the viewer for man pages. A few commands inside less: Page-up/down, R (repaint), F (follow), [0-9]+ (scroll that many lines), / (search forwards for a regexp), ? (search backwards for a regexp), q (quit). Exercise Find, with less, the IP address of the first Brazilian visitor after the 100th line of DistroWatch/20100428/debian. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 8 / 22 N Exercise Print the lines 5 to 15 of one file in DistroWatch.com's logs. Simple but powerful text-processing commands Outputting the first/last lines Do not test your scripts on the whole dataset! head outputs the first lines of the input; tail its last lines. A few options: -[0-9]+ tunes the number of lines (10 by default), -n too but a -/+ prefix asks head/tail to output all lines except the provided number of last/first lines. Lo¨ıcCerf Minera¸c~aode Dados Aplicada 9 / 22 N Simple but powerful text-processing commands Outputting the first/last lines Do not test your scripts on the whole dataset! head outputs the first lines of the input; tail its last lines. A few options: -[0-9]+ tunes the number of lines (10 by default), -n too but a -/+ prefix asks head/tail to output all lines except the provided number of last/first lines.
Recommended publications
  • Free Software an Introduction
    Free Software an Introduction By Steve Riddett using Scribus 1.3.3.12 and Ubuntu 8.10 Contents Famous Free Software...................................................... 2 The Difference.................................................................. 3 Stallman and Torvalds.......................................................4 The Meaning of Distro......................................................5 Linux and the Holy Grail.................................................. 6 Frequently Asked Questions............................................. 7 Where to find out more.....................................................8 2 Free Software - an Introduction Famous Free Software Firefox is a web browser similar to Microsoft's Internet Explorer but made the Free software way. The project started in 2003 from the source code of the Netscape browser which had been released when Netscape went bust. In April 2009, Firefox recorded 29% use worldwide (34% in Europe). Firefox is standards compliant and has a system of add-ons which allow innovative new features to be added by the community. OpenOffice.org is an office suite similar to Microsoft Office. It started life as Star Office. Sun Microsystems realised it was cheaper to buy out Star Office than to pay Microsoft for licence fees for MS Office. Sun then released the source code for Star Office under the name OpenOffice.org. OpenOffice.org is mostly compatible with MS Office file formats, which allows users to open .docs and .xls files in Open Office. Microsoft is working on a plug-in for MS Office that allows it to open .odf files. ODF (Open Document Format) is Open Office's default file format. Once this plug-in is complete there will 100% compatiblity between the two office suites. VLC is the VideoLAN Client. It was originally designed to allow you to watch video over the network.
    [Show full text]
  • Frogpond 37.1 • Winter 2014 (Pdf)
    F ROGPOND T HE JOURNAL OF THE HAIKU SOCIETY OF AMERICA V OLUME 37:1 W INTER 2014 About HSA & Frogpond Subscription / HSA Membership: For adults in the USA, $35; in Canada/Mexico, $37; for seniors and students in North America, $30; for everyone elsewhere, $47. Pay by check on a USA bank or by International Postal Money Order. All subscriptions/memberships are annual, expiring on December 31, and include three issues of Frogpond as well as three newsletters, the members’ anthology, and voting rights. All correspondence regarding new and renewed memberships, changes of address, and requests for information should be directed to the HSA secretary (see the list of RI¿FHUVS). Make checks and money orders payable to Haiku Society of America, Inc. Single Copies of Back Issues: For USA & Canada, $14; for elsewhere, $15 by surface and $20 by airmail. Older issues might cost more, depending on how many are OHIW3OHDVHLQTXLUH¿UVW0DNHFKHFNVSD\DEOHWR+DLNX6RFLHW\RI America, Inc. Send single copy and back issue orders to the Frogpond editor (see p. 3). Contributor Copyright and Acknowledgments: All prior copyrights are retained by contributors. Full rights revert to contributors upon publication in Frogpond. Neither the Haiku 6RFLHW\RI$PHULFDLWVRI¿FHUVQRUWKHHGLWRUDVVXPHUHVSRQVLELOLW\ IRUYLHZVRIFRQWULEXWRUV LQFOXGLQJLWVRZQRI¿FHUV ZKRVHZRUNLV printed in Frogpond, research errors, infringement of copyrights, or failure to make proper acknowledgments. Frogpond Listing and Copyright Information: ISSN 8755-156X Listed in the MLA International Bibliography, Humanities Interna- tional Complete, Poets and Writers. © 2014 by the Haiku Society of America, Inc. Francine Banwarth, Editor Michele Root-Bernstein, Associate Editor Cover Design and Photos: Christopher Patchel.
    [Show full text]
  • Software Process Versus Design Quality: Tug of War? > Architecture Haiku > Designing Resource-Aware Cloud Applications
    > Software Process versus Design Quality: Tug of War? > Architecture Haiku > Designing Resource-Aware Cloud Applications AUGUST 2015 www.computer.org IEEE COMPUTER SOCIETY http://computer.org • +1 714 821 8380 STAFF Editor Manager, Editorial Services Content Development Lee Garber Richard Park Senior Manager, Editorial Services Contributing Editors Robin Baldwin Christine Anthony, Brian Brannon, Carrie Clark Walsh, Brian Kirk, Chris Nelson, Meghan O’Dell, Dennis Taylor, Bonnie Wylie Director, Products and Services Evan Butterfield Production & Design Carmen Flores-Garvey, Monette Velasco, Jennie Zhu-Mai, Senior Advertising Coordinator Mark Bartosik Debbie Sims Circulation: ComputingEdge is published monthly by the IEEE Computer Society. IEEE Headquarters, Three Park Avenue, 17th Floor, New York, NY 10016-5997; IEEE Computer Society Publications Office, 10662 Los Vaqueros Circle, Los Alamitos, CA 90720; voice +1 714 821 8380; fax +1 714 821 4010; IEEE Computer Society Headquarters, 2001 L Street NW, Suite 700, Washington, DC 20036. Postmaster: Send undelivered copies and address changes to IEEE Membership Processing Dept., 445 Hoes Lane, Piscataway, NJ 08855. Application to Mail at Periodicals Postage Prices is pending at New York, New York, and at additional mailing offices. Canadian GST #125634188. Canada Post Corporation (Canadian distribution) publications mail agreement number 40013885. Return undeliverable Canadian addresses to PO Box 122, Niagara Falls, ON L2E 6S8 Canada. Printed in USA. Editorial: Unless otherwise stated, bylined articles, as well as product and service descriptions, reflect the author’s or firm’s opinion. Inclusion in ComputingEdge does not necessarily constitute endorsement by the IEEE or the Computer Society. All submissions are subject to editing for style, clarity, and space.
    [Show full text]
  • Programming UEFI for Dummies Or What I Have Learned While Tweaking Freepascal to Output UEFI Binaries
    Programming UEFI for dummies Or What I have learned while tweaking FreePascal to output UEFI binaries UEFI ● Unified Extensible Firmware Interface ● Specification that define an abstract common interface over firmware ● For short : BIOS replacement What I will discuss ? ● Quick overview of existing UEFI toolchains ● Structure of UEFI executable files ● Structure of UEFI APIs ● Overview of features exposed by UEFI APIs ● Protocols ● Bonus feature... ● What’s next ? Disclaimer notice ● While very important, this presentation will not discuss any security issues of UEFI ● I assume SecureBoot is disabled to use what is presented here Existing toolchains ● Mainly two stacks – TianoCore EDK II – GNU-EFI ● From what I read – Tedious setup process (more than one package) – GNU-EFI is supposed simpler to use (not simple ;-) – Do not require a full cross compiler Binary structure of UEFI application ● Portable Executable binaries (PE32 or PE32+ for x86* and ARM CPUs) ● With a special subsystem code to recognize an UEFI application from a Windows binary – Applications ● EFI_APP (11) : bootloader, baremetal applications... – drivers ● EFI_BOOT (12) : filesystem... ● EFI_RUN (13) : available to OS at runtime UEFI application entry point ● EFI_MAIN( imageHandle: EFI_HANDLE; systemTable : PEFI_SYSTEM_TABLE): EFI_STATUS; ● Same calling convention as the corresponding Windows target ● CPU already in protected mode with flat memory model – On 64 bits, already in long mode – But only one CPU core initialized Overview of EFI_SYSTEM_TABLE ● Access to Input/output/error
    [Show full text]
  • Programming with Haiku
    Programming with Haiku Lesson 5 Written by DarkWyrm All material © 2010 DarkWyrm Let's take some time to put together all of the different bits of code that we've been learning about. Since the first lesson, we have examined the following topics: • Templates • Namespaces • Iterators • The C++ string class • The STL Associative containers: map, set, multimap, and multiset • The STL Sequential containers: vector, deque, and list • The STL Container Adapters: queue and priority_queue • C++ input and output streams, a.k.a cout and friends • Exceptions There is enough material here that a book could be written to get a good, strong understanding of effective use of the Standard Template Library and the Standard C++ Library. Expert use is not our goal for this context, but having a good working knowledge of these topics will help make our code better when writing applications for Haiku. Project: Reading Paladin Projects For those unfamiliar, Paladin is one of the Integrated Development Environments available for Haiku. It was designed to have an interface similar to BeIDE, which was the main IDE for BeOS back in the day. One feature that sets it apart from other IDEs for Haiku is that its unique project file format is a text file with a specific format. This makes it possible to easily migrate to and away from it. The format itself is relatively simple. Each file is a list of key/value entry pairs with one entry per line. This makes it possible to read and interpret the project file progressively. It also increases forward compatibility because new keys can be ignored by older versions of the program.
    [Show full text]
  • Haiku, a Desktop You Can Still Learn From
    Haiku, a desktop you can still learn from No, you didn't steal all our ideas yet ;-) François Revol [email protected] Haiku? ● Free Software Operating System ● Inspired by BeOS ● We use our own kernel & graphics server – Pros: We control the whole stack – Cons: Much harder porting Linux & X11 stuff ● C++ API The Haiku desktop inspiration ● Inherited from BeOS ● Goes waaay back! ● Oh look! A Dock! – Later changed to DeskBar Haiku genealogy ● Poke levenez.com � MacOS 2001 DevEd, MaxEd… BeOS DR1… PR1 … R4 R5.1 ZETA NewOS kernel Unix OpenBeOS Haiku R1? “This looks like 1990 stuff to me” ● Ok, no fancy bubblegum whizzbang ● But that’s faster � ● There’s more to it… Modern features in Haiku \o/ ● Some stuff BeOS didn’t have… ● Layout support ● L10n / I18n Multithreaded app design ● App has several messaging Looper threads – Main thread: BApplication – One thread per BWindow ● app_server – 1 drawing thread per window ● Pros: Responsiveness ● Cons: Correct app design is harder Replicants ● Apps can provide BViews to others ● Host not limited to Tracker – BeHappy doc browser X-ray navigation ● Saves lot of window opening/closing ● Also for Copy/Move Scripting API ● Handlers report supported suites – Not unrelated to Intents on Android � ● Provides GUI controls introspection Node monitoring ● Like inotify but 20y ago ● Yeah, well, Linux didn’t invent it � ● Kernel sends BMessage archives to looper (Extended) Attributes ● Typed ● Xattrs exist in *nix – XDG std but no common API ● Indexable – Each fs has its own – By the fs (no – Nobody cares updatedb…)
    [Show full text]
  • Programming the Be Operating System
    Table of Contents Preface ................................................................................................................... vii 1. BeOS Programming Overview ............................................................. 1 Features of the BeOS ....................................................................................... 1 Structure of the BeOS ...................................................................................... 5 Software Kits and Their Classes ...................................................................... 7 BeOS Programming Fundamentals ............................................................... 13 BeOS Programming Environment ................................................................. 28 2. BeIDE Projects .......................................................................................... 31 Development Environment File Organization .............................................. 31 Examining an Existing BeIDE Project ........................................................... 34 Setting up a New BeIDE Project ................................................................... 47 HelloWorld Source Code ............................................................................... 65 3. BeOS API Overview ................................................................................ 75 Overview of the BeOS Software Kits ............................................................ 75 Software Kit Class Descriptions ....................................................................
    [Show full text]
  • Quarantine Poetry
    Quarantine Poetry A Gift of Joy and Laughter From Mead School’s Poetry Workshop To You March - June 2020 Syllabic Poems Syllabic poems are poems measured by the number of syllables. Haikus are syllabic poems, for instance. HAIKU - Haiku poems are early Japanese poetry that originated with the introduction of writing in Chinese characters, most likely in the fifth century, A.D. In the Japanese tradition, the poems were often sung and had a pattern of dance gestures. Topics common to haiku poetry include: nature, ceremonies, friends and acquaintances, beauty, love, and death. A haiku poem consists of 17 syllables written in three lines with a 5-7-5 syllable pattern. Variations include the: SENRYU - same as haiku but the topics are about politics, social satire, or irony. TANKA - 31 syllables in a five line pattern of 5-7-5-7-7 syllables. CINQUAIN - 22 syllables in a five line pattern of 2-4-6-8-2 syllables. Jade Moore Senryu: What now? Fire alarm rings In case of fire. But what If it is on fire? Haiku: I love spring I stand with the flowers Then my allergies greet us I really hate spring. Austin Shapiro A little birdy Feed me! Starts flying around the house Just give me food! Cat sees little bird I’ve been nothing but good Kitty jumps into the sky Hey human up there, I’m talking! Birdy goes bye bye, munch munch Meow meow! Smack, smack, smack, pillow! A small little frog I hit and hit and beat you with fluff Sitting right next to a dog Feathers everywhere In the creepy fog The bedroom becomes covered The floor is turned to whiteness Rain, rain,
    [Show full text]
  • Technology Websites
    Technology Websites 1. Animoto - Animoto is a video slideshow creator which allows users to upload images and use provided free songs. https://animoto.com/ 2. Anthologize - Anthologize is a plugin that turns WordPress into a platform for publishing electronic texts. http://anthologize.org/ 3. Bubblr – Create comic strips using photos found on flickr http://www.pimpampum.net/en/content/bubblr 4. BuddyPress - BuddyPress in a WordPress add-on that creates social networking features for use on your WP site. https://buddypress.org/ 5. Chatroll – Embed a chatroom into HTML or Canvas http://chatroll.com/ 6. ClassTools: Create free games, quizzes, activities and diagrams in seconds! Host them on your own blog, website or intranet! No signup, no passwords, no charge! http://www.classtools.net/ 7. ClippingMagic – ClippingMagic is a web-based way to crop parts of images with minimal time and effort (very impressive technology). https://clippingmagic.com/ 8. Coggle – Coggle helps sharing complex information by creating mind maps. www.coggle.it 9. Comic Life - Comic Life is a graphic illustrator / comic creating program. http://www.comiclife.com/ 10. Compfight - Compfight is a flikr search engine that locates Creative Commons licensed photos. http://compfight.com/ 11. Evernote - Evernote is a storage/bookmarking website that combines skitch, shoebox, and other software programs. https://evernote.com/ 12. Gigapan – very high resolution images enable online scrolling and zooming to approximate a digital field trip to many international and cultural locations. http://gigapan.com/ 13. Doodle – Scheduling and calendaring functions both in the cloud and integrated with outlook or google calendars http://doodle.com/ 14.
    [Show full text]
  • Learning to Program with Haiku
    Learning to Program with Haiku Lesson 1 Written by DarkWyrm All material © 2010 DarkWyrm Programming involves communicating your ideas to the computer. The only problem is that computers are stupid. They will do exactly what you tell them and NOT what you mean unless what you mean is, in fact, what you have told them. If you don't completely understand that – believe me – you will soon enough. The problem with communicating with the computer is that it doesn't speak any human language. All it knows is what to do when given a particular numerical instruction. For people to do this is very tough, so we write in one language accessible to people and the computer turns it into something it can understand. The translation can be done right when the program is run, called an interpreted language, or beforehand as is done in compiled languages. C and C++ are compiled languages, so when writing C++ programs, you write the human language (source code) and the compiler turns it into computer instructions (machine code). In C++, all computer instructions are grouped together into blocks called functions. Here is an example: void myFunction(void) { } Functions may or may not require data to do their job, and they may or may not give back a result when they are done. This one, called myFunction, requires no data and returns none. It also does nothing, but that's OK. Here's the format for defining a function: <outdata> <functionname>(indata) { <instructions to do the function> } The input data is always inside a pair of parentheses and all of the function's instructions will go inside the pair of curly braces.
    [Show full text]
  • Schedulers University of New Mexico
    Schedulers University of New Mexico https://commons.wikimedia.org/wiki/ File:Simplified_Structure_of_the_Linux_Kern el.svg 2 University of New Mexico O(1) scheduler (older) Two arrays, switching between them is just changing a pointer Uses heuristics to try to know which processes are interactive Average sleep time https://en.wikipedia.org/wiki/O(1)_scheduler 3 University of New Mexico CFS scheduler (currently in Linux) Completely Fair Scheduler Red-black tree of execution to the nanosecond niffies Like weighted fair queuing for packet networks An ideal processor would share equally maximum execution time = time the process has been waiting to run / total number of processes https://en.wikipedia.org/wiki/Completely_Fair_Scheduler 4 University of New Mexico BFS (now MuQQS) Brain “Hug” Scheduler Specifically for desktops Weighted round-robin where the weights are based on some very complex formulae (see Wikipedia for details) No priority modification for sleep behavior Time slice = 6ms (human perception of jitter ≈ 7ms) Performs slightly better than CFS for <16 cores https://en.wikipedia.org/wiki/Brain_Fuck_Scheduler https://lwn.net/Articles/720227/ 5 University of New Mexico Windows NT through 10 ● Multilevel Feedback Queue (MLFQ) 6 University of New Mexico Mac OS X ● XNU is a mix of FreeBSD and Mach – Network, files, processes, POSIX interface, etc. come from FreeBSD – CPU scheduling, memory management, specialized IPC, etc. comes from Mach ● Round-robin and MLFQ schedulers 7 University of New Mexico IOS (i.e., iPhone)
    [Show full text]
  • Minutes of the General Assembly on 13Th December, 2018 (PDF, English)
    Minutes of the General Assembly on 13th December, 2018 Minute taker: Colin Finck ReactOS Deutschland e.V. The General Assembly of the Association “ReactOS Am Bach 11 Deutschland e.V.” took place in the internet (SSL 33378 Rheda-Wiedenbrück, Germany secured IRC server) on 13th December, 2018 at 20:00 [email protected] (local German time). Attendant members • Matthias Kupfer (President of the Association) • Daniel Reimer (Vice President of the Association) • Colin Finck (Treasurer) • Mark Jansen • Amine Khaldi • Thomas Faber • Pierre Schweitzer (from 20:34) Summary of the decisions • Members of the Association plan to represent ReactOS on several events in 2019: ◦ March: Chemnitzer Linux-Tage in Chemnitz, Germany ◦ July: RMLL in Strasbourg, France ◦ December: Open Source Summit in Paris, France • The Association will organize another one-week ReactOS Hackfest in 2019, most likely again around August. Based on the input from Association and project members, there will not be a second official ReactOS Hackfest in the same year. However, the Association may sponsor independently locally organized Hackfests. • The Board has been discharged of its responsibilities. • §7.1 and §7.2 of the Articles of Association have been changed to extend the Board to four persons, adding a second Vice President. • Matthias Kupfer, Daniel Reimer, Pierre Schweitzer, and Colin Finck have been elected as Board members, each with 7 “Yes” votes, 0 “No” votes, and no abstentions. They will serve as President (Matthias Kupfer), Vice President (Daniel Reimer), Vice President (Pierre Schweitzer), and Treasurer (Colin Finck). • All members of the Association agreed to generally enable the compensation of Board members for their work, within the limits given by law and the Articles of Association.
    [Show full text]