Advertisement
Guest User

linux bday2

a guest
Jul 14th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.56 KB | None | 0 0
  1. http://www.gatorlug.org/node/159
  2. Linux - How it began
  3.  
  4. OS related
  5.  
  6. Some early history straight from the source.
  7.  
  8. To: Linux-Activists@BLOOM-PICAYUNE.MIT.EDU
  9. From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  10. Subject: Birthday (was Re: Uptime found. Thanks to all)
  11. Date: 31 Jul 92 22:15:20 GMT
  12.  
  13. In article <1992Jul30.211132.20101@cc.umontreal.ca> duperval@ERE.UMontreal.CA (Duperval Laurent) writes:
  14. >
  15. >P.S. BTW, noone answered yet: when is Linux's birthday? Let's have a
  16. >party!
  17.  
  18. I couldn't for the life of me remember when it all happened, and I don't
  19. keep a diary, so I can't give you any exact dates for when linux "was
  20. born". But I did start to wonder, so I started ftp'ing around for
  21. archives of the comp.os.minix group (where I announced it), and this is
  22. what I came up with (with some editing).
  23.  
  24. This is just a sentimental journey into some of the first posts
  25. concerning linux, so you can happily press 'n' now if you actually
  26. thought you'd get anything technical.
  27.  
  28. > From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  29. > Newsgroups: comp.os.minix
  30. > Subject: Gcc-1.40 and a posix-question
  31. > Message-ID: <1991Jul3.100050.9886@klaava.Helsinki.FI>
  32. > Date: 3 Jul 91 10:00:50 GMT
  33. >
  34. > Hello netlanders,
  35. >
  36. > Due to a project I'm working on (in minix), I'm interested in the posix
  37. > standard definition. Could somebody please point me to a (preferably)
  38. > machine-readable format of the latest posix rules? Ftp-sites would be
  39. > nice.
  40.  
  41. The project was obviously linux, so by July 3rd I had started to think
  42. about actual user-level things: some of the device drivers were ready,
  43. and the harddisk actually worked. Not too much else.
  44.  
  45. > As an aside for all using gcc on minix - [ deleted ]
  46.  
  47. Just a success-report on porting gcc-1.40 to minix using the 1.37
  48. version made by Alan W Black & co.
  49.  
  50. > Linus Torvalds torvalds@kruuna.helsinki.fi
  51. >
  52. > PS. Could someone please try to finger me from overseas, as I've
  53. > installed a "changing .plan" (made by your's truly), and I'm not certain
  54. > it works from outside? It should report a new .plan every time.
  55.  
  56. So I was clueless - had just learned about named pipes. Sue me. This
  57. part of the post got a lot more response than the actual POSIX query,
  58. but the query did lure out arl from the woodwork, and we mailed around
  59. for a bit, resulting in the Linux subdirectory on nic.funet.fi.
  60.  
  61. Then, almost two months later, I actually had something working: I made
  62. sources for version 0.01 available on nic sometimes around this time.
  63. 0.01 sources weren't actually runnable: they were just a token gesture
  64. to arl who had probably started to despair about ever getting anything.
  65. This next post must have been from just a couple of weeks before that
  66. release.
  67.  
  68. > From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  69. > Newsgroups: comp.os.minix
  70. > Subject: What would you like to see most in minix?
  71. > Summary: small poll for my new operating system
  72. > Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
  73. > Date: 25 Aug 91 20:57:08 GMT
  74. > Organization: University of Helsinki
  75. >
  76. >
  77. > Hello everybody out there using minix -
  78. >
  79. > I'm doing a (free) operating system (just a hobby, won't be big and
  80. > professional like gnu) for 386(486) AT clones. This has been brewing
  81. > since april, and is starting to get ready. I'd like any feedback on
  82. > things people like/dislike in minix, as my OS resembles it somewhat
  83. > (same physical layout of the file-system (due to practical reasons)
  84. > among other things).
  85. >
  86. > I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
  87. > This implies that I'll get something practical within a few months, and
  88. > I'd like to know what features most people would want. Any suggestions
  89. > are welcome, but I won't promise I'll implement them :-)
  90. >
  91. > Linus (torvalds@kruuna.helsinki.fi)
  92. >
  93. > PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
  94. > It is NOT protable (uses 386 task switching etc), and it probably never
  95. > will support anything other than AT-harddisks, as that's all I have :-(.
  96.  
  97. Judging from the post, 0.01 wasn't actually out yet, but it's close. I'd
  98. guess the first version went out in the middle of September -91. I got
  99. some responses to this (most by mail, which I haven't saved), and I even
  100. got a few mails asking to be beta-testers for linux.
  101.  
  102. After that just a few general answers to quesions on the net:
  103.  
  104. > From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  105. > Newsgroups: comp.os.minix
  106. > Subject: Re: What would you like to see most in minix?
  107. > Summary: yes - it's nonportable
  108. > Message-ID: <1991Aug26.110602.19446@klaava.Helsinki.FI>
  109. > Date: 26 Aug 91 11:06:02 GMT
  110. > Organization: University of Helsinki
  111. >
  112. > In article <1991Aug25.234450.22562@nntp.hut.fi> jkp@cs.HUT.FI (Jyrki Kuoppala) writes:
  113. > >> [re: my post about my new OS]
  114. > >
  115. > >Tell us more! Does it need a MMU?
  116. >
  117. > Yes, it needs a MMU (sorry everybody), and it specifically needs a
  118. > 386/486 MMU (see later).
  119. >
  120. > >
  121. > >>PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
  122. > >>It is NOT protable (uses 386 task switching etc)
  123. > >
  124. > >How much of it is in C? What difficulties will there be in porting?
  125. > >Nobody will believe you about non-portability ;-), and I for one would
  126. > >like to port it to my Amiga (Mach needs a MMU and Minix is not free).
  127. >
  128. > Simply, I'd say that porting is impossible. It's mostly in C, but most
  129. > people wouldn't call what I write C. It uses every conceivable feature
  130. > of the 386 I could find, as it was also a project to teach me about the
  131. > 386. As already mentioned, it uses a MMU, for both paging (not to disk
  132. > yet) and segmentation. It's the segmentation that makes it REALLY 386
  133. > dependent (every task has a 64Mb segment for code & data - max 64 tasks
  134. > in 4Gb. Anybody who needs more than 64Mb/task - tough cookies).
  135. >
  136. > It also uses every feature of gcc I could find, specifically the __asm__
  137. > directive, so that I wouldn't need so much assembly language objects.
  138. > Some of my "C"-files (specifically mm.c) are almost as much assembler as
  139. > C. It would be "interesting" even to port it to another compiler (though
  140. > why anybody would want to use anything other than gcc is a mystery).
  141.  
  142. [ editors note: linux has in fact gotten more portable with newer
  143. versions: there was a lot more assembly in the early versions. Not that
  144. anybody in their right mind would try to port it even now ]
  145.  
  146. > Unlike minix, I also happen to LIKE interrupts, so interrupts are
  147. > handled without trying to hide the reason behind them (I especially like
  148. > my hard-disk-driver. Anybody else make interrupts drive a state-
  149. > machine?). All in all it's a porters nightmare.
  150. >
  151. > >As for the features; well, pseudo ttys, BSD sockets, user-mode
  152. > >filesystems (so I can say cat /dev/tcp/kruuna.helsinki.fi/finger),
  153. > >window size in the tty structure, system calls capable of supporting
  154. > >POSIX.1. Oh, and bsd-style long file names.
  155. >
  156. > Most of these seem possible (the tty structure already has stubs for
  157. > window size), except maybe for the user-mode filesystems. As to POSIX,
  158. > I'd be delighted to have it, but posix wants money for their papers, so
  159. > that's not currently an option. In any case these are things that won't
  160. > be supported for some time yet (first I'll make it a simple minix-
  161. > lookalike, keyword SIMPLE).
  162. >
  163. > Linus (torvalds@kruuna.helsinki.fi)
  164. >
  165. > PS. To make things really clear - yes I can run gcc on it, and bash, and
  166. > most of the gnu [bin/file]utilities, but it's not very debugged, and the
  167. > library is really minimal. It doesn't even support floppy-disks yet. It
  168. > won't be ready for distribution for a couple of months. Even then it
  169. > probably won't be able to do much more than minix, and much less in some
  170. > respects. It will be free though (probably under gnu-license or similar).
  171.  
  172. Well, obviously something worked on my machine: I doubt I had yet gotten
  173. gcc to compile itself under linux (or I would have been too proud of it
  174. not to mention it). Still before any release-date.
  175.  
  176. Then, October 5th, I seem to have released 0.02. As I already
  177. mentioned, 0.01 didn't actually come with any binaries: it was just
  178. source code for people interested in what linux looked like. Note the
  179. lack of announcement for 0.01: I wasn't too proud of it, so I think I
  180. only sent a note to everybody who had shown interest.
  181.  
  182. > From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  183. > Newsgroups: comp.os.minix
  184. > Subject: Free minix-like kernel sources for 386-AT
  185. > Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI>
  186. > Date: 5 Oct 91 05:41:06 GMT
  187. > Organization: University of Helsinki
  188. >
  189. > Do you pine for the nice days of minix-1.1, when men were men and wrote
  190. > their own device drivers? Are you without a nice project and just dying
  191. > to cut your teeth on a OS you can try to modify for your needs? Are you
  192. > finding it frustrating when everything works on minix? No more all-
  193. > nighters to get a nifty program working? Then this post might be just
  194. > for you :-)
  195. >
  196. > As I mentioned a month(?) ago, I'm working on a free version of a
  197. > minix-lookalike for AT-386 computers. It has finally reached the stage
  198. > where it's even usable (though may not be depending on what you want),
  199. > and I am willing to put out the sources for wider distribution. It is
  200. > just version 0.02 (+1 (very small) patch already), but I've successfully
  201. > run bash/gcc/gnu-make/gnu-sed/compress etc under it.
  202. >
  203. > Sources for this pet project of mine can be found at nic.funet.fi
  204. > (128.214.6.100) in the directory /pub/OS/Linux. The directory also
  205. > contains some README-file and a couple of binaries to work under linux
  206. > (bash, update and gcc, what more can you ask for :-). Full kernel
  207. > source is provided, as no minix code has been used. Library sources are
  208. > only partially free, so that cannot be distributed currently. The
  209. > system is able to compile "as-is" and has been known to work. Heh.
  210. > Sources to the binaries (bash and gcc) can be found at the same place in
  211. > /pub/gnu.
  212. >
  213. > ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled
  214. > (and gcc-1.40, possibly 1.37.1, haven't tested), and you need minix to
  215. > set it up if you want to run it, so it is not yet a standalone system
  216. > for those of you without minix. I'm working on it. You also need to be
  217. > something of a hacker to set it up (?), so for those hoping for an
  218. > alternative to minix-386, please ignore me. It is currently meant for
  219. > hackers interested in operating systems and 386's with access to minix.
  220. >
  221. > The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If
  222. > you are still interested, please ftp the README/RELNOTES, and/or mail me
  223. > for additional info.
  224. >
  225. > I can (well, almost) hear you asking yourselves "why?". Hurd will be
  226. > out in a year (or two, or next month, who knows), and I've already got
  227. > minix. This is a program for hackers by a hacker. I've enjouyed doing
  228. > it, and somebody might enjoy looking at it and even modifying it for
  229. > their own needs. It is still small enough to understand, use and
  230. > modify, and I'm looking forward to any comments you might have.
  231. >
  232. > I'm also interested in hearing from anybody who has written any of the
  233. > utilities/library functions for minix. If your efforts are freely
  234. > distributable (under copyright or even public domain), I'd like to hear
  235. > from you, so I can add them to the system. I'm using Earl Chews estdio
  236. > right now (thanks for a nice and working system Earl), and similar works
  237. > will be very wellcome. Your (C)'s will of course be left intact. Drop me
  238. > a line if you are willing to let me use your code.
  239. >
  240. > Linus
  241. >
  242. > PS. to PHIL NELSON! I'm unable to get through to you, and keep getting
  243. > "forward error - strawberry unknown domain" or something.
  244.  
  245. Well, it doesn't sound like much of a system, does it? It did work, and
  246. some people even tried it out. There were several bad bugs (and there
  247. was no floppy-driver, no VM, no nothing), and 0.02 wasn't really very
  248. useable.
  249.  
  250. 0.03 got released shortly thereafter (max 2-3 weeks was the time between
  251. releases even back then), and 0.03 was pretty useable. The next version
  252. was numbered 0.10, as things actually started to work pretty well. The
  253. next post gives some idea of what had happened in two months more...
  254.  
  255. > From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  256. > Newsgroups: comp.os.minix
  257. > Subject: Re: Status of LINUX?
  258. > Summary: Still in beta
  259. > Message-ID: <1991Dec19.233545.8114@klaava.Helsinki.FI>
  260. > Date: 19 Dec 91 23:35:45 GMT
  261. > Organization: University of Helsinki
  262. >
  263. > In article <469@htsa.htsa.aha.nl> miquels@maestro.htsa.aha.nl (Miquel van Smoorenburg) writes:
  264. > >Hello *,
  265. > > I know some people are working on a FREE O/S for the 386/486,
  266. > >under the name Linux. I checked nic.funet.fi now and then, to see what was
  267. > >happening. However, for the time being I am without FTP access so I don't
  268. > >know what is going on at the moment. Could someone please inform me about it?
  269. > >It's maybe best to follow up to this article, as I think that there are
  270. > >a lot of potential interested people reading this group. Note, that I don't
  271. > >really *have* a >= 386, but I'm sure in time I will.
  272. >
  273. > Linux is still in beta (although available for brave souls by ftp), and
  274. > has reached the version 0.11. It's still not as comprehensive as
  275. > 386-minix, but better in some respects. The "Linux info-sheet" should
  276. > be posted here some day by the person that keeps that up to date. In
  277. > the meantime, I'll give some small pointers.
  278. >
  279. > First the bad news:
  280. >
  281. > - Still no SCSI: people are working on that, but no date yet.
  282. > Thus you need a AT-interface disk (I have one report that it
  283. > works on an EISA 486 with a SCSI disk that emulates the
  284. > AT-interface, but that's more of a fluke than anything else:
  285. > ISA+AT-disk is currently the hardware setup)
  286.  
  287. As you can see, 0.11 had already a small following. It wasn't much, but
  288. it did work.
  289.  
  290. > - still no init/login: you get into bash as root upon bootup.
  291.  
  292. That was still standard in the next release.
  293.  
  294. > - although I have a somewhat working VM (paging to disk), it's not
  295. > ready yet. Thus linux needs at least 4M to be able to run the
  296. > GNU binaries (especially gcc). It boots up in 2M, but you
  297. > cannot compile.
  298.  
  299. I actually released a 0.11+VM version just before Christmas -91: I
  300. didn't need it myself, but people were trying to compile the kernel in
  301. 2MB and failing, so I had to implement it. The 0.11+VM version was
  302. available only to a small number of people that wanted to test it out:
  303. I'm still surprised it worked as well as it did.
  304.  
  305. > - minix still has a lot more users: better support.
  306. >
  307. > - it hasn't got years of testing by thousands of people, so there
  308. > are probably quite a few bugs yet.
  309. >
  310. > Then for the good things..
  311. >
  312. > - It's free (copyright by me, but freely distributable under a
  313. > very lenient copyright)
  314.  
  315. The early copyright was in fact much more restrictive than the GNU
  316. copyleft: I didn't allow any money at all to change hands due to linux.
  317. That changed with 0.12.
  318.  
  319. > - it's fun to hack on.
  320. >
  321. > - /real/ multithreading filesystem.
  322. >
  323. > - uses the 386-features. Thus locked into the 386/486 family, but
  324. > it makes things clearer when you don't have to cater to other
  325. > chips.
  326. >
  327. > - a lot more... read my .plan.
  328. >
  329. > /I/ think it's better than minix, but I'm a bit prejudiced. It will
  330. > never be the kind of professional OS that Hurd will be (in the next
  331. > century or so :), but it's a nice learning tool (even more so than
  332. > minix, IMHO), and it was/is fun working on it.
  333. >
  334. > Linus (torvalds@kruuna.helsinki.fi)
  335. >
  336. > ---- my .plan --------------------------
  337. > Free UNIX for the 386 - coming 4QR 91 or 1QR 92.
  338. >
  339. > The current version of linux is 0.11 - it has most things a unix kernel
  340. > needs, and will probably be released as 1.0 as soon as it gets a little
  341. > more testing, and we can get a init/login going. Currently you get
  342. > dumped into a shell as root upon bootup.
  343. >
  344. > Linux can be gotten by anonymous ftp from 'nic.funet.fi' (128.214.6.100)
  345. > in the directory '/pub/OS/Linux'. The same directory also contains some
  346. > binary files to run under Linux. Currently gcc, bash, update, uemacs,
  347. > tar, make and fileutils. Several people have gotten a running system,
  348. > but it's still a hackers kernel.
  349. >
  350. > Linux still requires a AT-compatible disk to be useful: people are
  351. > working on a SCSI-driver, but I don't know when it will be ready.
  352. >
  353. > There are now a couple of other sites containing linux, as people have
  354. > had difficulties with connecting to nic. The sites are:
  355. > Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
  356. > directory /pub/msdos/replace
  357. > tsx-11.mit.edu (18.172.1.2):
  358. > directory /pub/linux
  359. >
  360. > There is also a mailing list set up 'Linux-activists@niksula.hut.fi'.
  361. > To join, mail a request to 'Linux-activists-request@niksula.hut.fi'.
  362. > It's no use mailing me: I have no actual contact with the mailing-list
  363. > (other than being on it, naturally).
  364. >
  365. > Mail me for more info:
  366. >
  367. > Linus (torvalds@kruuna.Helsinki.FI)
  368. >
  369. > 0.11 has these new things:
  370. >
  371. > - demand loading
  372. > - code/data sharing between unrelated processes
  373. > - much better floppy drivers (they actually work mostly)
  374. > - bug-corrections
  375. > - support for Hercules/MDA/CGA/EGA/VGA
  376. > - the console also beeps (WoW! Wonder-kernel :-)
  377. > - mkfs/fsck/fdisk
  378. > - US/German/French/Finnish keyboards
  379. > - settable line-speeds for com1/2
  380.  
  381. As you can see: 0.11 was actually stand-alone: I wrote the first
  382. mkfs/fsck/fdisk programs for it, so that you didn't need minix any more
  383. to set it up. Also, serial lines had been hard-coded to 2400bps, as that
  384. was all I had.
  385.  
  386. > Still lacking:
  387. > - init/login
  388. > - rename system call
  389. > - named pipes
  390. > - symbolic links
  391.  
  392. Well, they are all there now: init/login didn't quite make it to 0.12,
  393. and rename() was implemented as a patch somewhere between 0.12 and 0.95.
  394. Symlinks were in 0.95, but named pipes didn't make it until 0.96.
  395.  
  396. > 0.12 will probably be out in January (15th or so), and will have:
  397. > - POSIX job control (by tytso)
  398. > - VM (paging to disk)
  399. > - Minor corrections
  400.  
  401. Actually, 0.12 was out January 5th, and contained major corrections. It
  402. was in fact a very stable kernel: it worked on a lot of new hardware,
  403. and there was no need for patches for a long time. 0.12 was also the
  404. kernel that "made it": that's when linux started to spread a lot faster.
  405. Earlier kernel releases were very much only for hackers: 0.12 actually
  406. worked quite well.
  407.  
  408. That's all I found for 1991 - maybe it answered some questions.
  409.  
  410. Linus
  411.  
  412. -----------------------------------------------------------------------------
  413.  
  414. To: Linux-Activists@BLOOM-PICAYUNE.MIT.EDU
  415. From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  416. Subject: Re: Writing an OS - questions !!
  417. Date: 5 May 92 07:58:17 GMT
  418.  
  419. In article <10685@inews.intel.com> nani@td2cad.intel.com (V. Narayanan) writes:
  420. >
  421. >Hi folks,
  422. > For quite some time this "novice" has been wondering as to how one goes
  423. >about the task of writing an OS from "scratch". So here are some questions,
  424. >and I would appreciate if you could take time to answer 'em.
  425.  
  426. Well, I see someone else already answered, but I thought I'd take on the
  427. linux-specific parts. Just my personal experiences, and I don't know
  428. how normal those are.
  429.  
  430. >1) How would you typically debug the kernel during the development phase?
  431.  
  432. Depends on both the machine and how far you have gotten on the kernel:
  433. on more simple systems it's generally easier to set up. Here's what I
  434. had to do on a 386 in protected mode.
  435.  
  436. The worst part is starting off: after you have even a minimal system you
  437. can use printf etc, but moving to protected mode on a 386 isn't fun,
  438. especially if you at first don't know the architecture very well. It's
  439. distressingly easy to reboot the system at this stage: if the 386
  440. notices something is wrong, it shuts down and reboots - you don't even
  441. get a chance to see what's wrong.
  442.  
  443. Printf() isn't very useful - a reboot also clears the screen, and
  444. anyway, you have to have access to video-mem, which might fail if your
  445. segments are incorrect etc. Don't even think about debuggers: no
  446. debugger I know of can follow a 386 into protected mode. A 386 emulator
  447. might do the job, or some heavy hardware, but that isn't usually
  448. feasible.
  449.  
  450. What I used was a simple killing-loop: I put in statements like
  451.  
  452. die:
  453. jmp die
  454.  
  455. at strategic places. If it locked up, you were ok, if it rebooted, you
  456. knew at least it happened before the die-loop. Alternatively, you might
  457. use the sound io ports for some sound-clues, but as I had no experience
  458. with PC hardware, I didn't even use that. I'm not saying this is the
  459. only way: I didn't start off to write a kernel, I just wanted to explore
  460. the 386 task-switching primitives etc, and that's how I started off (in
  461. about April-91).
  462.  
  463. After you have a minimal system up and can use the screen for output, it
  464. gets a bit easier, but that's when you have to enable interrupts. Bang,
  465. instant reboot, and back to the old way. All in all, it took about 2
  466. months for me to get all the 386 things pretty well sorted out so that I
  467. no longer had to count on avoiding rebooting at once, and having the
  468. basic things set up (paging, timer-interrupt and a simple task-switcher
  469. to test out the segments etc).
  470.  
  471. >2) Can you test the kernel functionality by running it as a process on a
  472. > different OS? Wouldn't the OS(the development environment) generate
  473. > exceptions in cases when the kernel (of the new OS) tries to modify
  474. > 'priviledged' registers?
  475.  
  476. Yes, it's generally possible for some things, but eg device drivers
  477. usually have to be tested out on the bare machine. I used minix to
  478. develop linux, so I had no access to IO registers, interrupts etc.
  479. Under DOS it would have been possible to get access to all these, but
  480. then you don't have 32-bit mode. Intel isn't that great - it would
  481. probably have been much easier on a 68040 or similar.
  482.  
  483. So after getting a simple task-switcher (it switched between two
  484. processes that printed AAAA... and BBBB... respectively by using the
  485. timer-interrupt - Gods I was proud over that), I still had to continue
  486. debugging basically by using printf. The first thing written was the
  487. keyboard driver: that's the reason it's still written completely in
  488. assembler (I didn't dare move to C yet - I was still debugging at
  489. about instruction-level).
  490.  
  491. After that I wrote the serial drivers, and voila, I had a simple
  492. terminal program running (well, not that simple actually). It was still
  493. the same two processes (AAA..), but now they read and wrote to the
  494. console/serial lines instead. I had to reboot to get out of it all, but
  495. it was a simple kernel.
  496.  
  497. After that is was plain sailing: hairy coding still, but I had some
  498. devices, and debugging was easier. I started using C at this stage, and
  499. it certainly speeds up developement. This is also when I start to get
  500. serious about my megalomaniac ideas to make "a better minix that minix".
  501. I was hoping I'd be able to recompile gcc under linux some day...
  502.  
  503. The harddisk driver was more of the same: this time the problems with
  504. bad documentation started to crop up. The PC may be the most used
  505. architecture in the world right now, but that doesn't mean the docs are
  506. any better: in fact I haven't seen /any/ book even mentioning the weird
  507. 386-387 coupling in an AT etc (Thanks Bruce).
  508.  
  509. After that, a small filesystem, and voila, you have a minimal unix. Two
  510. months for basic setups, but then only slightly longer until I had a
  511. disk-driver (seriously buggy, but it happened to work on my machine) and
  512. a small filesystem. That was about when I made 0.01 available (late
  513. august-91? Something like that): it wasn't pretty, it had no floppy
  514. driver, and it couldn't do much anything. I don't think anybody ever
  515. compiled that version. But by then I was hooked, and didn't want to
  516. stop until I could chuck out minix.
  517.  
  518. >3) Would new linkers and loaders have to be written before you get a basic
  519. > kernel running?
  520.  
  521. All versions up to about 0.11 were crosscompiled under minix386 - as
  522. were the user programs. I got bash and gcc eventually working under
  523. 0.02, and while a race-condition in the buffer-cache code prevented me
  524. from recompiling gcc with itself, I was able to tackle smaller compiles.
  525. 0.03 (October?) was able to recompile gcc under itself, and I think
  526. that's the first version that anybody else actually used. Still no
  527. floppies, but most of the basic things worked.
  528.  
  529. Afetr 0.03 I decided that the next version was actually useable (it was,
  530. kind of, but boy is X under 0.96 more impressive), and I called the next
  531. version 0.10 (November?). It still had a rather serious bug in the
  532. buffer-cache handling code, but after patching that, it was pretty ok.
  533. 0.11 (December) had the first floppy driver, and was the point where I
  534. started doing linux developement under itself. Quite as well, as I
  535. trashed my minix386 partition by mistake when trying to autodial
  536. /dev/hd2.
  537.  
  538. By that time others were actually using linux, and running out of
  539. memory. Especially sad was the fact that gcc wouldn't work on a 2MB
  540. machine, and although c386 was ported, it didn't do everything gcc did,
  541. and couldn't recompile the kernel. So I had to implement disk-paging:
  542. 0.12 came out in January (?) and had paging by me as well as job control
  543. by tytso (and other patches: pmacdona had started on VC's etc). It was
  544. the first release that started to have "non-essential" features, and
  545. being partly written by others. It was also the first release that
  546. actually did many things better than minix, and by now people started to
  547. really get interested.
  548.  
  549. Then it was 0.95 in March, bugfixes in April, and soon 0.96. It's
  550. certainly been fun (and I trust will continue to be so) - reactions have
  551. been mostly very positive, and you do learn a lot doing this type of
  552. thing (on the other hand, your studies suffer in other respects :)
  553.  
  554. Linus
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement