)]}'
{
  "commit": "edb046236801c4975482840240127aeefdd0f7d7",
  "tree": "f204d177cb6e85af83b46c2ee9653677a40be9cb",
  "parents": [
    "741d52384b75d810b8a04d7f16733b9a6ff809a5"
  ],
  "author": {
    "name": "Linus Benedict Torvalds",
    "email": "torvalds@klaava.Helsinki.FI",
    "time": "Wed Mar 18 00:32:46 1992 +0000"
  },
  "committer": {
    "name": "Nicolas Pitre",
    "email": "nico@cam.org",
    "time": "Sun Aug 19 14:19:02 2007 -0400"
  },
  "message": "0.95a uploaded - soon available\n\nI just uploaded the new kernel source and image to nic.funet.fi into the\nincoming-directory under linux. As usual, they won\u0027t show up for a day\nor two: wait for arl to announce that it\u0027s available.\n\nThe new version called 0.95a has no major new features, and is just a\nbug-fix release for 0.95 - it hopefully fixes all known bugs, but that\u0027s\nwhat I thought about plain 0.95 :(. There are even less installation\ndocuments than before: (a) they haven\u0027t changed since 0.95 and (b) the\nrootdisk is no longer made by me (which means that 0.95a will probably\nbe the first release that actually has all the needed device special\nfiles there.)\n\nEveryone\u0027s favourite bug is also fixed: 0.95a actually returns the\ncorrect version number from uname(). (Boy did I get bug reports on this\none :^)\n\nI\u0027m including the release-note at the end of the post.\n\n\t\tLinus\n\nPS: Whoever made the GNU-emacs binary available for linux - the\ninability to use the \"meta-X shell\" command is a bit disturbing. I\nlooked into it a bit, and my guess is that the linux config file doesn\u0027t\ndefine HAVE_SETSID. Could somebody with more diskspace than I have try\nto recompile gemacs with HAVE_SETSID defined, and tell me if this fixes\nthe problem?\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n\t\tRELEASE NOTES FOR LINUX v0.95a\n\t\tLinus Torvalds, March 17, 1992\n\nThis is file mostly contains info on changed features of Linux, and\nusing old versions as a help-reference might be a good idea.\n\n\t\tCOPYRIGHT\n\nLinux-0.95a is NOT public domain software, but is copyrighted by me. The\ncopyright conditions are the same as those imposed by the GNU copyleft:\nget a copy of the GNU copyleft at any major ftp-site (if it carries\nlinux, it probably carries a lot of GNU software anyway, and they all\ncontain the copyright).\n\nThe copyleft is pretty detailed, but it mostly just means that you may\nfreely copy linux for your own use, and redistribute all/parts of it, as\nlong as you make source available (not necessarily in the same\ndistribution, but you make it clear how people can get it for nothing\nmore than copying costs). Any changes you make that you distribute will\nalso automatically fall under the GNU copyleft.\n\nNOTE! The linux unistd library-functions (the low-level interface to\nlinux: system calls etc) are excempt from the copyright - you may use\nthem as you wish, and using those in your binary files won\u0027t mean that\nyour files are automatically under the GNU copyleft. This concerns\n/only/ the unistd-library and those (few) other library functions I have\nwritten: most of the rest of the library has it\u0027s own copyrights (or is\npublic domain). See the library sources for details of those.\n\n\t\tNEW FEATURES OF 0.95a\n\n0.95a is mainly a bug-fix release: it didn\u0027t even get it\u0027s own version\nnumber. Plain 0.95 fixed a lot of bugs in 0.12, but also introduced\ntotally new bugs: 0.95a tries to correct these. The bugs corrected\n(knock wood) are:\n\n- floppy and harddisk drivers should now once more work with most\n  hardware: I\u0027d be interested in reports of \"unexpected HD interrupt\"\n  and \"reset-floppy called\" with the new kernel.\n\n- A rather serious tty-bug corrected: this one messed up the screen\n  under 0.95, and switched characters over the serial lines. Under\n  extreme circumstances it could even crash the machine.\n\n- ptrace had a bug: hopefully it works now.\n\n- The extended partitions didn\u0027t work under 0.95, although most of the\n  code was there. Please somebody tell me it works under 0.95a.\n\n- the 0.95 fdisk was broken: a new one with the new root-floppy should\n  clear up the confusion.\n\n- select() and the sleep-wakeup code had fundamental (but relatively\n  benign) problems under 0.95 (and all earlier versions). The sleeping\n  code is totally redesigned, and select should work better even under\n  load.\n\nOne actual new feature, not just a bug-fix:\n\n- ser3-4 support is there, although I\u0027ve been unable to test it (as I\n  haven\u0027t got more than ser2). NOTE! Due to AT hardware limitations,\n  ser1 cannot be active at the same time as ser3, and likewise ser2 and\n  ser4 are mutually exclusive. The interrupt-handlers should have no\n  problems with shared interrupts, but the actual hardware probably has,\n  so the kernel disables interrupts from one serial line when the other\n  one is opened.\n\n- faster default keyrepeat rate: this is going to need some getting used\n  to, but is extremely practical especially with bigger screen sizes.\n\n- VGA cards that aren\u0027t recognized at bootup are put into the 80x50\n  character mode if \u003center\u003e was pressed when asking about SVGA modes.\n\n\t\tNEW FEATURES OF 0.95\n\n\tInit/login\n\nYeah, thanks to poe (Peter Orbaeck (sp?)), linux now boots up like a\nreal unix with a login-prompt. Login as root (no passwd), and change\nyour /etc/passwd to your hearts delight (and add other logins in\n/etc/inittab etc).\n\n\tVirtual consoles on any (?) hardware.\n\nYou can select one of several consoles by pressing the left alt-key and\na function key at the same time. Linux should report the number of\nvirtual consoles available upon bootup. /dev/tty0 is now \"the current\"\nscreen, /dev/tty1 is the main console, and /dev/tty2-8 can exist\ndepending on your text-mode or card.\n\nThe virtual consoles also have some new screen-handling commands: they\nconfirm even better to vt200 control codes than 0.11. Special graphic\ncharacters etc: you can well use them as terminals to VMS (although\nthat\u0027s a shameful waste of resources), and the PF1-4 keys work somewhat\nin the application-key mode.\n\n\tExtended vt200 emulation\n\n0.95 contains code to handle a vt200 application keymap mode: the cursor\nkeys send slightly different codes when in application mode, and the\nnumeric keyboard tries to emulate the vt200 application keys. This\nprobably isn\u0027t complete yet.\n\n\tSymbolic links.\n\n0.95 now allows symlinks to point to other symlinks etc (the maximum\ndepth is a rather arbitrary 5 links). 0.12 didn\u0027t like more than one\nlevel of indirection.\n\n\tVirtual memory.\n\nVM under 0.95 should be better than under 0.12: no more lockups (as far\nas I have seen), and you can now swap to the filesystem as well as to a\nspecial partition. There are two programs to handle this: mkswap to set\nup a swap-file/partition and swapon to start up swapping.\n\nmkswap needs either a partition or a file that already exists to make a\nswap-area. To make a swap-file, do this:\n\n\t# dd bs\u003d1024 count\u003dNN if\u003d/dev/hda of\u003dswapfile\n\t# mkswap swapfile NN\n\nThe first command just makes a file that is NN blocks long (initializing\nit from /dev/hda, but that could be anything). The second command then\nwrites the necessary setup-info into the file. To start swapping, write\n\n\t# swapon swapfile\n\nNOTE! \u0027dd\u0027 isn\u0027t on the rootdisk: you have to install some things onto\nthe harddisk before you can get up and running.\n\nNOTE2! When linux runs totally out of virtual memory, things slow down\ndramatically. It tries to keep on running as long as it can, but at\nleast it shouldn\u0027t lock up any more. ^C should work, although you might\nhave to wait a while for it..\n\n\tFaster floppies\n\nOk, you don\u0027t notice this much when booting up from a floppy: bash has\ngrown, so it takes longer to load, and the optimizations work mostly\nwith sequential accesses. When you start un-taring floppies to get the\nprograms onto your harddisk, you\u0027ll notice that it\u0027s much faster now.\nThat should be about the only use for floppies under a unix: nobody in\ntheir right mind uses floppies as filesystems.\n\n\tBetter FS-independence\n\nHopefully you\u0027ll never even notice this, but the filesystem has been\npartly rewritten to make it less minix-fs-specific. I haven\u0027t\nimplemented all the VFS-patches I got, so it\u0027s still not ready, but it\u0027s\ngetting there, slowly.\n\n\tAnd that\u0027s it, I think.\n\nHappy hacking.\n\n\t\t\tLinus (torvalds@kruuna.helsinki.fi)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8bedb81b8ebf11abc0a4eac148da4354578f7971",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "e397dab0ffc2725af8928e1ee25f3b9a4f30db7e",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "1befd14f13113f467bec1f625934e0eeda0028ee",
      "old_mode": 33188,
      "old_path": "boot/setup.S",
      "new_id": "7e9d1327dbff680a06c9524a6572b2593fefc121",
      "new_mode": 33188,
      "new_path": "boot/setup.S"
    },
    {
      "type": "delete",
      "old_id": "ec733d049d88589ea808912c43936a32dc1f1186",
      "old_mode": 33188,
      "old_path": "fs/bitmap.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "e4a4e9ed6f2d2494f408c6dd4eac89b80633f58e",
      "old_mode": 33188,
      "old_path": "fs/block_dev.c",
      "new_id": "cca44d36266146bc81a13e404b6db7e0d4a06a91",
      "new_mode": 33188,
      "new_path": "fs/block_dev.c"
    },
    {
      "type": "modify",
      "old_id": "2ece7792b2409edf931666ed702857d6a58236c7",
      "old_mode": 33188,
      "old_path": "fs/buffer.c",
      "new_id": "d4aaa06da5c329df9538ff5aa4fbdfa268162d73",
      "new_mode": 33188,
      "new_path": "fs/buffer.c"
    },
    {
      "type": "delete",
      "old_id": "0c50eaa86ba6a09fe4bfb3f752d731c9e3332013",
      "old_mode": 33188,
      "old_path": "fs/file_dev.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "dd68b1d29d909aadd11acbc10f5dd4b0f7bc44af",
      "old_mode": 33188,
      "old_path": "fs/inode.c",
      "new_id": "7173e2371d10a6ab8d8e99db63f53ea5db9b1bf2",
      "new_mode": 33188,
      "new_path": "fs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "646ba0e24d0a5da0c469da8da21be829b77fec57",
      "old_mode": 33188,
      "old_path": "fs/minix/file_dev.c",
      "new_id": "d9d1fb907e57555a7be2417bfbe212f7ea590091",
      "new_mode": 33188,
      "new_path": "fs/minix/file_dev.c"
    },
    {
      "type": "modify",
      "old_id": "4f163bd170d9dc4229f2d20702a2c4b7fa44d6c8",
      "old_mode": 33188,
      "old_path": "fs/minix/truncate.c",
      "new_id": "ab72736b5d43e3b0b6c66e39ad97d9f9db7ab203",
      "new_mode": 33188,
      "new_path": "fs/minix/truncate.c"
    },
    {
      "type": "modify",
      "old_id": "053b1ab3f3c1af1d1b38441123f71fda9c429992",
      "old_mode": 33188,
      "old_path": "fs/select.c",
      "new_id": "e5d14396bc6f8e4226f263f438337d2315cfc1d0",
      "new_mode": 33188,
      "new_path": "fs/select.c"
    },
    {
      "type": "delete",
      "old_id": "32bc19d43b61e8a40e52d98827674173d6ba0c30",
      "old_mode": 33188,
      "old_path": "fs/truncate.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "118249acbf239868172d7119ec0baaf4387aea19",
      "old_mode": 33188,
      "old_path": "include/asm/io.h",
      "new_id": "9886d7bda81b9e0f9a9fdec25dcffd0e4a15efdf",
      "new_mode": 33188,
      "new_path": "include/asm/io.h"
    },
    {
      "type": "modify",
      "old_id": "5efc9e7b3e87e31360153b43f957034ca8e48407",
      "old_mode": 33188,
      "old_path": "include/asm/segment.h",
      "new_id": "cf2890c27e044a370f5d02440652ffeffb18d438",
      "new_mode": 33188,
      "new_path": "include/asm/segment.h"
    },
    {
      "type": "modify",
      "old_id": "ca364b629122c2ac880374d0b0e6ee301d79e4e5",
      "old_mode": 33188,
      "old_path": "include/linux/config.h",
      "new_id": "fc2ce17daf9551d75252c8bf016687708a0767e0",
      "new_mode": 33188,
      "new_path": "include/linux/config.h"
    },
    {
      "type": "modify",
      "old_id": "0c7b2e9b10bdf2aa2ca5f6efa7cc6f096f26b3a9",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "885164658c5cec20f07c52f3c0d2807ae57334bf",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    },
    {
      "type": "modify",
      "old_id": "d903e2daf671ca6402d9d4dda330d9d7eee6fc83",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "99f919b644161be6b5bb90cffd8dcfc0bef8f1ec",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "295738e64f2bd81153479211a24422ea9db1d593",
      "old_mode": 33188,
      "old_path": "include/linux/timer.h",
      "new_id": "ab3c74ed3be1bc06ba2290c0c358e2811e4de1dc",
      "new_mode": 33188,
      "new_path": "include/linux/timer.h"
    },
    {
      "type": "modify",
      "old_id": "4812f85aff080c20c1e54d7691d3171a6e20ee3f",
      "old_mode": 33188,
      "old_path": "include/linux/tty.h",
      "new_id": "805894dedca26febec9e66088a81683d77209db7",
      "new_mode": 33188,
      "new_path": "include/linux/tty.h"
    },
    {
      "type": "modify",
      "old_id": "faa6e53ef01d98e968a5e320a111a67cf9d2cf5e",
      "old_mode": 33188,
      "old_path": "include/termios.h",
      "new_id": "b04a0e9928ecb212c19da1dd2ac0bde95f1ddfbf",
      "new_mode": 33188,
      "new_path": "include/termios.h"
    },
    {
      "type": "modify",
      "old_id": "1739de5de754dbbeea68b4955351b3e78f056a96",
      "old_mode": 33188,
      "old_path": "init/main.c",
      "new_id": "d53e00f4061ae162468420b49a79f1519d2e8ece",
      "new_mode": 33188,
      "new_path": "init/main.c"
    },
    {
      "type": "modify",
      "old_id": "28e37d573fbf694f1e9b2134e018db791c9582f3",
      "old_mode": 33188,
      "old_path": "kernel/blk_drv/blk.h",
      "new_id": "c159025d558e018bfb2a3165cd1adad1d0d3be51",
      "new_mode": 33188,
      "new_path": "kernel/blk_drv/blk.h"
    },
    {
      "type": "modify",
      "old_id": "92881e5bffc04a33e15458811c5ad4b1a1ce1ad4",
      "old_mode": 33188,
      "old_path": "kernel/blk_drv/floppy.c",
      "new_id": "a97bff665a0a8e9a18c063dd2194eb00e0380e0b",
      "new_mode": 33188,
      "new_path": "kernel/blk_drv/floppy.c"
    },
    {
      "type": "modify",
      "old_id": "b75b17655cfd9811002df73e8962cdd6a476efcd",
      "old_mode": 33188,
      "old_path": "kernel/blk_drv/hd.c",
      "new_id": "e3a6ca57407e106fa9bb196a10913049fd05c49d",
      "new_mode": 33188,
      "new_path": "kernel/blk_drv/hd.c"
    },
    {
      "type": "modify",
      "old_id": "3de86488e64fff3164fb4106ced9779671e8400f",
      "old_mode": 33188,
      "old_path": "kernel/chr_drv/console.c",
      "new_id": "f506c4c63070eb442accca65c2d42a8a3233110f",
      "new_mode": 33188,
      "new_path": "kernel/chr_drv/console.c"
    },
    {
      "type": "modify",
      "old_id": "0177e0680b78b8f24103f7bc769d420d4a427e3a",
      "old_mode": 33188,
      "old_path": "kernel/chr_drv/keyboard.S",
      "new_id": "6a26867c69fb5ff4569dd8dc75f4d8e40a0039b4",
      "new_mode": 33188,
      "new_path": "kernel/chr_drv/keyboard.S"
    },
    {
      "type": "modify",
      "old_id": "f147cecb082b78d88925052a12b9d3d0ef59de4f",
      "old_mode": 33188,
      "old_path": "kernel/chr_drv/rs_io.s",
      "new_id": "e74dcd3f329c635f7bb65fbb0342c8263a6699bc",
      "new_mode": 33188,
      "new_path": "kernel/chr_drv/rs_io.s"
    },
    {
      "type": "modify",
      "old_id": "2334e50a3322f24946b144ae20ca97bd3041a65d",
      "old_mode": 33188,
      "old_path": "kernel/chr_drv/serial.c",
      "new_id": "741cc435f863600d28720eddbe9b6e0b0b093ad4",
      "new_mode": 33188,
      "new_path": "kernel/chr_drv/serial.c"
    },
    {
      "type": "modify",
      "old_id": "18ea261528aed9c56bedc00b7649435dff84a311",
      "old_mode": 33188,
      "old_path": "kernel/chr_drv/tty_io.c",
      "new_id": "12c64799f65e8e3853329a971b9f9f3fa41b09bc",
      "new_mode": 33188,
      "new_path": "kernel/chr_drv/tty_io.c"
    },
    {
      "type": "modify",
      "old_id": "a4250d3ca73b8346e362f00a2f6bb96a55e93f11",
      "old_mode": 33188,
      "old_path": "kernel/chr_drv/tty_ioctl.c",
      "new_id": "eabfbed1b2ca83be88de8ad79df1d00618956be7",
      "new_mode": 33188,
      "new_path": "kernel/chr_drv/tty_ioctl.c"
    },
    {
      "type": "modify",
      "old_id": "e81319a920d32418639ac2f21c7d11cb6ba6ff64",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "be284bd3543e263e5f45a79d0736a9ca6b04ff8a",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "1dab26141c31a8f311bb28fc51ea7a0fe8d94dc8",
      "old_mode": 33188,
      "old_path": "kernel/ptrace.c",
      "new_id": "6722ef7233ad5a97629b663d4f59080868c74924",
      "new_mode": 33188,
      "new_path": "kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "335551d6e3ef2fbab8771734bc354bf242a8001e",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "2c8a845efee65c5cad5940a91102359e81dbf42d",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    },
    {
      "type": "modify",
      "old_id": "44c38abbde9cfb01e450891754877e96f3b1dc0b",
      "old_mode": 33188,
      "old_path": "mm/Makefile",
      "new_id": "cc6e20965fe68dc93e62363262020b8f05718447",
      "new_mode": 33188,
      "new_path": "mm/Makefile"
    },
    {
      "type": "modify",
      "old_id": "a77f26f675f397469498397197907b9441b53fd6",
      "old_mode": 33188,
      "old_path": "mm/memory.c",
      "new_id": "574f28152b07b3b79d60fe592bb029d142fbdfda",
      "new_mode": 33188,
      "new_path": "mm/memory.c"
    },
    {
      "type": "delete",
      "old_id": "bd1c586bd8af9f18509e7287bf0a1c6c5c839955",
      "old_mode": 33188,
      "old_path": "mm/page.s",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "4c621d0123bbcacb13eceea6f69fca654aea3da5",
      "old_mode": 33188,
      "old_path": "mm/swap.c",
      "new_id": "5c7e883a3c841dc9012a5a98ee27c5a19ede4fc9",
      "new_mode": 33188,
      "new_path": "mm/swap.c"
    }
  ]
}
