OpenLLM-France/wikimedia huggingface dataset:
# Operating System Design/Case Studies/Windows 9x

Windows 9x references to the Windows family, Windows 95, 98 and Me operating systems. They were set apart from the earlier Windows versions: 1.0, 20, and 3.0 by their device drivers, virtual memory management and MSDOS.SYS and MS-DOS kernel. The reign of Windows 9x ended in 2001 when the Windows NT based Windows XP was released for both home and office use.

## Architecture

The Windows 9x architecture was a step up in many ways from its predecessors. The GUI was redesigned, the kernel supported virtual memory and had a VFAT{virtual file allocation table} filesystem unlike its FAT16 and FAT12 filesystems before. Windows 95b was the 3rd version of 95 released and included support for FAT32. All versions of 9x supported FAT16 drive compression through Drivespace, a program originally from MS-DOS 6.22

## The Kernel

The kernel was just a different version of the MS-DOS kernel, with added virtual memory and memory protection that was lacking in Windows 1.0+. It was of monolithic architecture, different from its successors NT 3.1+.

## The Registry

The registry acted as a temporary and convenient holding place for program and system data. The directories are conventionally named as follows: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG, and HKEY_PERFORMANCE_DATA. Each one of these stored specific types of data like, hardware configuration data, application data, performance data, and user data. The system can access this anytime and the current user is allowed to access and edit it also.

## File Names

File names in Windows 9x were allowed to have up to 255 characters, a special feature in the VFAT filesystem. Previous versions of Windows were limited to MS-DOS style 8.3 letter filenames.

## Graphical User Interface

The GUI was one significantly changed in the Windows 9x series. With the start button, the toolbar and taskbar both by default on the bottom of the screen, allowing running program to be selected. There was also a new widget set (that is, a different standard look and feel to the applications) and many new fonts are available.
# Operating System Design/Case Studies/Windows NT

Windows NT now refers to a family of Microsoft operating systems, all based on the original Windows NT released in 1993. All Windows operating systems since (XP, Vista, 7, etc.) are based on the NT kernel.
The Windows NT kernel is considered a hybrid kernel, and is also sometimes called a macrokernel. Although most system components run in the same address space, some subsystems run as user-mode server processes and many of the design objectives are the same as Mach.
# Operating System Design/Case Studies/ext4

ext4 (fourth extended filesystem) is the open source file system used on many Linux distributions, including Android 2.3 and later. It is a journaled filesystem, like its predecessor ext3. It supports up to 4 billion files, each up to 16 TiB, on volumes as large as 1 EiB.
Though ext4 has improved features over ext3 and some other file systems, it is not a major advance and uses old technology. And while it is still the default on many Linux systems, it is possible that in the future more and more systems will switch to more advanced filesystems, like Btrfs.
# Oberon/ETH Oberon/faq

This document was originally hosted at the ETHZ. It remains under the ETH license and is in the WayBack archive.
The frequently asked questions with their answers are distributed in the following documents:
* FAQ on ETH Oberon - alpha/beta releases: first aid for most questions of recent actuality for those using the alpha and beta releases.
* FAQ on the current release (2.3.6): old material in comparison with that of alpha/beta releases.
* FAQ on the Oberon Language: specifically related to the language and to the compiler, including the built-in assembler and programming hints.
* FAQ on Bluebottle
* FAQ on Oberon for .net
9 Dec 2002 - Copyright © 2002 ETH Zürich. All rights reserved. E-Mail: oberon-web at inf.ethz.ch Homepage: www.ethoberon.ethz.ch
# Oberon/ETH Oberon/genealsys

This document was originally hosted at the ETHZ. It remains under the ETH license and is in the WayBack archive.
Note: Suggestions for corrections and hints for improvement are welcome. The dates are approximative.
| | System name | Target Machine | Processor | OS | Milestone |
| | | Lilith (ETH) | | | |
| 1985 | Oberon | Ceres-1 (ETH) | NS 32032 | | Fall: Oberon project start |
| 1987 | | | | | Mid-year: Draft Oberon version |
| 1988 | Oberon Wir88a, Wir88a | Ceres-2 (ETH) | NS 32532 | Oberon (native) | Mid-year: Oberon system introduced at the ETH |
| 1989 | | | | | Oberon in programming courses |
| 1990 | Oberon | Ceres-3 (ETH) | NS 32GX32 | | Portable compiler Cre90 |
| 1990 | | | | | System completion |
| 1991 | Spark-Oberon Tem90 | SPARCstation (SUN) | SPARC | UNIX (SunOS) | Oberon-2 MoW91a, MoW91b |
| 1991 | MacOberon Fra90a, Fra90b | Macintosh II (Apple) | MC68020 | MacOS | Oberon-2 MoW91a, MoW91b |
| 1991 | DEC-Oberon | DECstation 3100 and 5000 (DEC) | MIPS R2000 | UNIX (Ultrix) | Oberon-2 MoW91a, MoW91b |
| 1991 | RISC Oberon | RS/6000 (IBM) | RIOS | UNIX (AIX) | Oberon-2 MoW91a, MoW91b |
| 1991 | MS-DOS Oberon Dis93 | Intel-based PC | Intel | MS DOS | Oberon-2 MoW91a, MoW91b |
| 1991 | Chameleon Oberon HeP92 | Chameleon (ETH) | LSI LR33000 | Oberon (native) | Oberon-2 MoW91a, MoW91b |
| 1991 | | | | | Oberon System 3 project start |
| 1992 | | | | | System books Rei92, WiG92 |
| 1993 | HP-Oberon Sup94 | HP 9000 Series 700 (HP) | PA-RISC | HP-UX | Object model adopted Cre94, Cre95 |
| 1993 | Oberon for Windows | Intel-based PC | Intel | MS Windows NT, 3.1 | Object model adopted Cre94, Cre95 |
| | System name | Target Machine | Processor | OS | Milestone |
| 1990 | | | | | Gadgets Mar90, Mar91, Mar94b |
| 1991 | Oberon System 3 | Ceres-2 (ETH) | NS 32532 | Oberon (native) | Oberon System 3 project start |
| 1992 | Spirit of Oberon | Intel-based PC | Intel | MS Windows 3.1 and 3.11 | Followed Oberon System 3 for Windows 95/98/NT |
| 1993 | MacOberon | Mac PowerPC 68k-based Mac | | MacOS | Fra93a |
| 1994 | Hybrid Oberon | Intel-based PC | Intel | Hybrid Kernel | Prototype of Native Oberon |
| 1994 | Native Oberon | Intel-based PC | Intel | Native Oberon | |
| 1998 | Oberon for Linux | Intel-based PC | Intel | Linux | Replaced by Linux-based Native Oberon |
| 1998 | Oberon Linux PPC | Mac PowerPC 68k-based Mac | | Linux PPC | |
| 1998 | SPARC | SPARCstation (SUN) | SPARC | Solaris (SUN) | |
| 1998 | HPUX | | | | Beta version |
| 1998 | Linux-based Oberon | Intel-based PC | Intel | Linux | |
| 1999 | SharkOberon | DEC DNARD NC | StrongARM | Oberon (native) | |
| 1999 | Linux x86 | Intel-based PC | Intel | Linux | |
| 1999 | Solaris x86 | Intel-based PC | Intel | Solaris | |
| 1999 | | | | | Programming language project with Microsoft Research |
| 2000 | | | | | Renamed to "ETH Oberon" |
10 Jul 2000 - Copyright © 2000 ETH Zürich. All rights reserved. E-Mail: oberon-web at inf.ethz.ch Homepage: http://www.ethoberon.ethz.ch
# Perl Programming

These books describe and explain Perl, a high-level, general-purpose, interpreted, dynamic programming language. Perl is noted for its idiomatically rich syntax, its extensive use of regular expressions and the large module archive CPAN.

## Contents

    About Perl

### Beginning Perl

    Getting started
       Editors and IDEs
       Perl Installation and Setup
       First program
       Basic variables
       Strings
       Numbers
    Comments
    Conditionals
    Control flow
    Declarations
    Operators
    Variables
    Data types
       Scalar variables
       Array variables
       Hash variables
       References and data structures
    User input-output
       Advanced output
       Filehandles
    Statement modifiers
    Functions
    Perl 5.10 additions
    Exercises

### More Perl

    Regular expressions
    Regular expression operators
    Regular expressions reference
    Code reuse (modules)
    Perl objects
    Structure and style

### Interfacing Perl

    GUI and desktop programming
    CPAN
    Using a Bitcard account
    DBI - Perl database interface

### Web development

    CGI
    FastCGI
    mod_perl
    HTML::Mason
    HTTP::Engine
    PSGI
    Unicode UTF-8

### Perl and beyond

    Perl 6
    Humour

### Sample code

    First example code to get you started
    Second example code to get you started

### Reference

    Concept index
    Function reference
    Keywords
    Quick-reference cards
    Useful modules
    Websites

## Related Wikibooks

    Perl 6 Programming
    Apache/mod perl
# Using a Bitcard account

Bitcard is a both archaic unified login protocol, based roughly on TypeKey, and the aptly named proprietary Website that functions as the sole provider of Bitcard accounts. Unfortunately, the only major services that permit Bitcard is rt (CPAN's default bug tracker uses it), and CPAN ratings.

## RT (CPAN Bug Tracker)

When it comes to RT, if you choose to use Bitcard, you will have an inept interface that will only permit bug-reporting and Search Distributions and Browse Distributions. Noone should ever use a Bitcard account: get a pause account that will allow all of the CPAN bug reporting and in addition the creation of new CPAN modules and distributions.
What exactly won't you be able to do with a Bitcard account? Well, a few of the many features:
* create modules
* edit your tickets by changing the priorities or status
* use advanced queries to find specific tickets
* locate all of the tickets filed by yourself
* collaborate on solving the bugs you reported
If you do use a Bitcard account and want to later submit a module for inclusion into CPAN or maintain a CPAN module at a later time, you will not be able to bring your previous bug reports over into your pause login.

## CPAN ratings

The official CPAN ratings site does not have an alternate login yet. Bitcard is required to rate modules.

## Deleting your Bitcard account

You can't… Sorry, got it for life.
# Perl Programming/About Perl

Perl is a programming language designed by Larry Wall, known today for its strong community and module archive CPAN. It was originally developed to process text and produce reports. As a result, a backronym has been formed from its name: Practical Extraction and Report Language. It makes extensive use of significant punctuation, and highly chaotic-looking code has been written in it. This has resulted in a less complimentary backronym (which is still embraced by Perl users): Pathologically Eclectic Rubbish Lister (said to be a quote from the language designer himself).
Perl is Free Software, available under the Artistic License and the GPL. It was developed on Unix, and its Unix roots are pervasive. Perl is available for most operating systems but is particularly prevalent on Unix and Unix-like systems, and is growing in popularity on Microsoft Windows systems. However, it has been ported to a multitude of environments (some say as many as Java). It's a popular systems administration tool in Windows. Most of the things done in Perl transfer well from one operating system to another (provided suggested conventions are followed).
As an example of Perl in action, until January 2002 the software running Wikipedia was a CGI script written in Perl.
Another example is Slashdot, which runs on the Perl-based Slashcode software.
When used on the web, Perl is often used in conjunction with the Apache web server and its mod_perl module. This embeds the Perl binary into the webserver so the CGI script need not fire up a new copy each time it's accessed. Other features such as database connection persistence greatly reduce the access times to the page.

## History

The Perl programming language was created by Larry Wall in 1987. It borrows features from C, sed, awk, shell scripting (sh), and (to a lesser extent) from many other programming languages as well. The name is normally capitalized ("Perl") when referring to the language, but not capitalized ("perl") when referring to the interpreter (e.g. "Only perl properly parses Perl.")

## Rationale

Perl was designed to be a practical language to extract information from text files and generate reports. One of its mottos is There is more than one way to do it (TIMTOWTDI - pronounced 'Tim Toady'). Another is Perl: the Swiss Army Chainsaw of Programming Languages. One stated design goal is to make easy tasks easy and difficult tasks possible. Its versatility permits versions of many programming paradigms: procedural, functional, and object-oriented — though purists object to Perl as it is not a cleanly designed language. Perl has a powerful regular expression support built in directly to the syntax. Perl is often considered the archetypal scripting language and has been called the "glue that holds the web together", as it is one of the most popular CGI languages. Its function as a "glue language" can be described broadly as its ability to tie together different systems and data structures that were not designed to be tied together.
# Perl Programming/Advanced output
## Advanced output overview

In many situations, especially for web programming, you will find that you want to put certain things, such as backslashes or quotes, in your text that aren't allowed in a traditional print statements. A statement such as
will not work because the interpreter would think that the quotes mark the end of the string. As with all things in Perl, there are many solutions to this problem.

## Use other quotes

The quickest solution to this problem would be to use single quotes to surround the string, allowing the use of double quotes in the middle.
This is obviously not the best solution, as it is conceivable that you are trying to print a string containing both kinds of quote:

## Escape characters

For situations like the above where only a short amount of text is being quoted, a common solution is to escape any quotes in the string. By preceding any quotes with a backslash they are treated as literal characters.
Using single quotes, the characters that require escaping are \'.
Using double quotes, the characters that need escaping are the variable sigils, (i.e. $@%*) in addition to \"
Using \ to escape reserved characters of course implies that you also need to escape any backslashes you want to use in your string. To print the second line literally using perl, you would need to write:
Luckily, Perl provides us with another way of quoting strings that avoids this problem.

## Custom quotes

Perl provides the operators q and qq that allows you to decide that characters are used to quote strings. Most punctuation characters can be used. Here are a few examples:
The only symbols I have found that cannot be used for these quotes are $ ` /

## Block output

As can be seen, while the custom quotes option works for short strings, it can run into problems, if a lot of text containing a lot of punctuation is output. For this situation, a technique called Block quoting can be used.
Any string of characters can be used instead of OUTPUT in the example above. Using this technique anything can be output no matter what characters it contains. The one caveat of this method is that the closing OUTPUT must be the first character on the line, there cannot be any space before it.

## Variable output

It is possible to output variables within strings when you use some of these methods:
Perl will figure out where your variable ends, if the character after it is neither a letter, number nor an underscore. If that is not your case, put your variable inside curly braces:

## Caveats

The single quote ' q{ and double quote " qq <<A operators, behave differently. Whereas when using double quotes, you can include variables and escape any characters, when you use single quotes you can only escape single quotes and you cannot include variables.
# Perl Programming/Beginning exercises

These are a set of eight exercises that can be used to test your ability to write Perl programs. In some cases, these exercises might include material not covered from the textbook; in those cases, you may have to consult your platform documentation to identify a necessary function or otherwise implement one yourself.
* Exercise 1
* Exercise 2
* Exercise 3
* Exercise 4
* Exercise 5
* Exercise 6
* Exercise 7
* Exercise 8
# Minecraft/Mooshroom
## Mooshroom

Minecraft
Blocks | Items | Mobs
Structures
Miscellaneous
Guides
A mushroom cow.

## Abilities and strengths/weaknesses

Other
This mob has no special abilities or disabilities.

### Drops

* 0 - 2 leather
* 1 - 2 raw beef
* 1 - 3 exp. points

## Description

Mooshrooms are variants of cows with mushrooms growing on their backs. They can be milked with a bucket like normal cows, although they also can be milked with a bowl to receive mushroom stew.
There are 2 types of mooshroom: red and brown. The red variant of mooshrooms is more common than the brown, but they will switch types upon being struck by lightning. Two red mooshrooms have a very small chance of producing brown offspring when bred. Brown mooshrooms can be fed flowers to receive the corresponding suspicious stew upon being milked with a bowl.
Can be sheared for mushrooms of the same color.
Can be bred with wheat.

## Strategies

None

## Mobs

* Animals
       Sheep
       Pig
       Cow
       Chicken
       Bat
       Cat
       Ocelot
       Wolf
       Fox
       Horse
       Donkey
       Mule
       Llama
       Bunny
       Frog
       Axolotl
       Tadpole
       Panda
       Mooshroom
* Monsters
       Creeper
       Zombie
       Skeleton
       Stray
       Witch
       Slime
       Phantom
       Warden
* Ocean
       Cod
       Pufferfish
       Salmon
       Tropical Fish
       Squid
       Glow Squid
       Dolphin
       Turtle
       Guardian
       Elder Guardian
* Nether
       Blaze
       Ghast
       Piglin
       Zombified Piglin
       Hoglin
       Strider
       Wither Skeleton
* End
       Enderman
       Endermite
       Shulker
* Illager/Villagers
       Villager
       Wandering Trader
       Illager
       Pillager
       Evoker
       Vex
       Ravanger
* Utility
       Snow Golem
       Iron Golem
       Allay
* Bosses
       Wither
       Ender Dragon
* Secret mobs
       Npc
# Minecraft/How To Build a Nether Portal

Minecraft
Blocks | Items | Mobs
Structures
Miscellaneous
Guides

## Why build a Nether portal

The Nether is a dangerous place filed with fire and lava, so why would you go there? For a start, it would allow you to brew potions, and it is the only place to get netherite.
You can also find blazes, which drop blaze rods, an item needed to get to The End.

## How to build the Nether portal
### Collecting the resources

You need a flint and steel and at least 10 obsidian. You can also create the portal frame by turning lave into obsidian by letting water flow next to a lava source block.

### Choosing a location

You may want to build the portal in an enclosed space some place between y=55 and y=40 to get the bast results. Any higher will make it harder to get soul sand and magma blocks, but any lower will mean you spawn surrounded by lava on all sides.

### Building the portal

To build the portal, you need to make a rectangle of obsidian that is standing upright. The inside area must be 3 blocks high and 2 blocks wide, and have nothing in it. The corners can be ignored.
Next, use the flint-and-steel on the inside of the portal. If done correctly, the air inside will turn into a purple plane. Stand inside it for a few seconds, and the scren will warp, then you will appear in the Nether.
Be very careful when leaving the portal for the first time. The portal may have spawned over (or next to) lava or fire, or you could walk accidentally off a cliff.
Consider housing the portal in a smal room to avoid risks like this. You can add lots of things here, but keep beds away as they will explode in the Nether.

## Preparations before you enter

Before you enter your newly-created Nether portal, make sure you have the following:
* Four stacks ofcobblestone to make bridges.
* Ender pearls to teleport over gaps.
* Gold armour - equip a full set to stop the piglins fighting you. Trust me, those piglins are everywhere.
* Golden apples.
* A hopper to empty chests without angering the piglins.
* A bow and a stack of arrows.
* A diamond sword and pickaxe.
* Flint and steel, in case the portal is destroyed.
* Enchanted gear! While not essential, it will make life much esier. Put unbreaking on gold armour, as well as fire protection and feather falling.
# Minecraft/Leather

Minecraft
Blocks | Items | Mobs
Structures
Miscellaneous
Guides
An early-game resource. Dropped by cows when killed.

## Crafting

Crafting recipe:
| Leather | Paper |
| Paper | Paper |
This makes a Book.

## See also

* Cow
* Armour
# Minecraft/Logs

Minecraft
Blocks | Items | Mobs
Structures
Miscellaneous
Guides
Logs form the base of trees and are one of the first blocks you should mine.
They can be turned to four planks in any crafting grid.
They come in several types:
* Oak
* Birch
* Spruce
* Jungle
* Dark Oak
The following are found in the Nether, are called "stems" instead of logs, and are not flammable, unlike the above:
* Crimson
* Warped
# Minecraft/How the Game Works

Minecraft
Blocks | Items | Mobs
Structures
Miscellaneous
Guides

## Spawning

Rules mob spawning follows:
* Mobs must spawn within 32 blocks of a player
* Mobs cannot spawn within 24 blocks of any player
* Enemies must spawn in the dark
Mobs will begin despawn (vanish into thin air) if it has not been named with a name tag and no players are within 32 blocks. Most mobs (exept those named with a name tag) instantly despawn if they are further than 128 blocks from the player. Mobs do not despawn if they are in a confined space smaller than 25 blocks in all directions. This is extremely helpful when farming animals for meat.
As a general rule, only mobs that can spawn naturally (and can respawn) can despawn (preventing you from going to a village or end city, leaving, coming back and seeing it empty). The mobs that can't despawn include:
* Villagers
* Npcs
* Tamed animals
* The Wither
* The Ender dragon
* Shulkers
* Pillagers
* Illagers
* Evokers
* Elder Guardians
* Iron Golems
* Snow Golems
For these mobs, getting farther away than 32 blocks causes them to freeze until you get near again. It also causes them to be invisible until you get closer.
# Minecraft/Hunger

Minecraft
Blocks | Items | Mobs
Structures
Miscellaneous
Guides
As expected from a survival game, hunger is a large part of Minecraft. Your hunger is shown above the hotbar on the right, as chicken drumsticks. You know if you are hungry if one is dark.
Note: the hunger bar will not show in creative mode, and will only drain on survival or adventure modes, but not in peaceful difficulty.

## Hunger

Each drumstick represents two hunger points. As a point drops, half a drumstick turns black. E.g: 10 full drumsticks: full hunger; 1 and a half black drumsticks: 17 hunger; 7 black drumsticks: 6 hunger.
If hunger is above 17, you will regenerate health. If it is below 6, you cannot sprint. If it is on zero, you will take damage. On easy difficulty, you take damage until you are on 10 health. On normal difficulty, you lose health until you have one point. On hard difficulty, you can even die of hunger!
To replenish hunger, eat a food item.

## Saturation

You cannot lose hunger if you have at least one saturation. You gain saturation from food items. You know it is zero if your hunger bar is shaking slightly.

## Wasting food

Don't waste your perfectly good beef when on almost full hunger. Wait until four drumsticks are dark. If you are in a fight or on low health, eat if one and a half drumsticks are dark, or you won't regenerate health.

## Getting hungry

Many things can drain your hunger bar. Taking damage, swinging an item or your fist, jumping, sprinting, building, mining and time.