home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / os / mswindo / advocacy / 2764 < prev    next >
Encoding:
Text File  |  1992-11-18  |  13.5 KB  |  368 lines

  1. Newsgroups: comp.os.ms-windows.advocacy
  2. Path: sparky!uunet!snorkelwacker.mit.edu!ira.uka.de!gmd.de!strobl
  3. From: strobl@gmd.de (Wolfgang Strobl)
  4. Subject: Re: Macintosh bigots
  5. Message-ID: <strobl.722126991@gmd.de>
  6. Sender: news@gmd.de (USENET News)
  7. Nntp-Posting-Host: gmdzi
  8. Organization: GMD, Sankt Augustin, Germany
  9. References: <strobl.722096841@gmd.de> <r!y1nsd@rpi.edu>
  10. Date: Wed, 18 Nov 1992 22:49:51 GMT
  11. Lines: 355
  12.  
  13. In <r!y1nsd@rpi.edu> johnsd2@jec326.its.rpi.edu.its1 (Daniel Norman Johnson) writes:
  14.  
  15. >In article 722096841@gmd.de, strobl@gmd.de (Wolfgang Strobl) writes:
  16. >>In <6dv1j!j@rpi.edu> johnsd2@vccnw07.its.rpi.edu.its1 (Daniel Norman Johnson) writes:
  17. >>
  18. >>[...]
  19. >>
  20. >>>No! Come on this isn't that hard. You DO have that option; but it
  21. >>>should NOT be necessary to have an accelerator; it should be fast
  22. >>>enough by itself. 
  23. >>
  24. >>I disagree. This may be true for the Macintosh. It doesn't make 
  25. >>sense to construct an Macintosh with a video interface which 
  26. >>is not able to run the only available user interface software
  27. >>fast enough. It makes sense to sell a PC with video hardware which
  28. >>is more than fast enough to run in text mode or to display static
  29. >>graphics, but which is a bit slow when used with Windows. Especially
  30. >>if it can be replaced easily. Just throw out you old and slow VGA
  31. >>card, and put it into one of the file servers, where display
  32. >>speed doesn't matter at all, and buy an accelerated card for
  33. >>your desktop PC. Not that hard, either, isn't it?
  34.  
  35. >Significanly harder in my book; why should this rigamarole be
  36. >necessary? Particularly if all your computers are using Windows..
  37.  
  38. They don't. Some of them use Windows, others run OS/2, and 
  39. still others use plain old DOS.
  40.  
  41. >>>(why do I say its not fast enough? Because the PCheads
  42. >>>here seem to feel that way- otherwise they'd have blown away my comment
  43. >>>about Windows having a slow  GDI by demonstrating that it doens't;
  44. >>>instead they say you can use an accelerated graphics board...)
  45. >>
  46. >>Then let's start to compare lines/second. Your turn. :-)
  47.  
  48. >:) I dont know how many lines per second, nor does it matter terribly.
  49. >(what these things do a lot of its blitting, actually..) I worry more
  50. >about how snappy it feels.
  51.  
  52. Ok. Then tell me how snappy it feels, and I will tell you how snappy
  53. my system feels. After that, we compare, ok? Your turn.
  54.  
  55. [...]
  56. >[deletia- big gnarly code bit]
  57. >>>[deletia- metafiles again]
  58. >>>>
  59. >>>>>Heck, its essentially the same thing.
  60. >>>>
  61. >>>>Well, it isn't such a big idea to collect a stream of calls to
  62. >>>>some graphics interface into some container, in order to be able
  63. >>>>to handle (i.e. store, replay, modify, ..) it. Most of the 
  64. >>>>graphics systems I know have a similar concept.
  65. >>
  66. >>>Which woudl those be? I dont think X has such a thing, I know
  67. >>>display postscript does, and (now) I know the windows GDI does. (is
  68. >>>this new with 3.1 or something, or did just miss it somehow?) 
  69. >>
  70. >>GDDM, GKS, CGM, PHIGS, to name a few. X isn't exactly a graphics
  71. >>interface. 
  72.  
  73. ><whimper> none of which Ive ever heard of. :(
  74. >It would explain why I didn't know these thigns were
  75. >that common.
  76.  
  77. >X is graphics library thingum; it ought to have such a thing.
  78.  
  79. >>No, metafiles aren't new. I don't know about version 1, because
  80. >>I started programming for Windows with version 2.0, which already
  81. >>had metafiles. Perhaps this should be clarified by somebody else.
  82.  
  83. >It would be a good idea.
  84.  
  85. Yes. ANYBODY OUT THERE?        ...silence...
  86.  
  87. >>>Does
  88. >>>PM? 
  89. >>
  90. >>Yes, and it's a bit better, because it got the segmented
  91. >>graphics architecture from IBMs GDDM instead of the flat
  92. >>metafile of GDI.
  93.  
  94. >Segments? Yech! :)
  95.  
  96. Big grin. :-}
  97.  
  98. >Actually, I dont see what you mean by this.. segmented?
  99.  
  100. You can put a list of primitives into graphic segments,
  101. and construct complex pictures from segments and primitives.
  102. A GDDM (and GPI) metafile is a tree of segments, instead
  103. of a flat list of primitives.
  104.  
  105. >>>What else? [can you say "off topic?" :) ]
  106. >>
  107. >>:-)
  108.  
  109. >I knew you could!
  110.  
  111. 9-)
  112.  
  113. >>>[deletia=- sounds]
  114. >>>>>>You don't, if you only need simple sounds. There is always the 
  115. >>>>>>speaker.
  116. >>>>
  117. >>>>>Which can only beep under Windows, no? Or did windows pick up a driver
  118. >>>>>for the internal speaker that I dont know about?
  119. >>>>
  120. >>>>Even under Windows 2.0 the speaker could do much more than just
  121. >>>>beep. 
  122. >>>>
  123. >>>>For Windows 3.1 there is a tiny driver for the speaker, which can
  124. >>>>be used instead of those driving the real sound cards. It isn't
  125. >>>>included in the standard distribution, because - according to
  126. >>>>Microsoft - it fails on a small percentage of the clones, and
  127. >>>>MS doesn't want to support it. But it is available almost every-
  128. >>>>where. I have it installed on all my machines, and it works
  129. >>>>quite well. For playing music or speech it's only a toy. But
  130. >>>>for short, characteristic sounds, it's more than enough.
  131. >>
  132. >>>I was actually refering to the Windows support mostly. I know you
  133. >>>can hack the speaker to do things. 
  134. >>
  135. >>No. This is Windows support. It is a native Windows device driver,
  136. >>which implements the sound device of Windows 3.1. It just wasn't
  137. >>include in the 3.1 release disk, but came later. Think of it
  138. >>as a bug fix for the default speaker driver, if you like.
  139.  
  140. >There is no default speaker driver. If it was a bug fix, it should
  141. >be included with the 3.1 distribution.
  142.  
  143. It should be included with the 3.2 distribution. The 
  144. multimedia support was new in 3.1.  Wait and see.
  145.  
  146. >My comment about "windows support" was beacuse of this:
  147. >"Even under Windows 2.0 the speaker can do much more than just beep."
  148.  
  149. >What support is there under 2.0 beyond beeping?
  150.  
  151. From the 3.0 SDK help file (because I have it online,
  152. the 2.0 interface is identical).
  153.  
  154. Sound Functions
  155.  
  156. Sound functions create sound and music for the system's sound 
  157. generator. The following list briefly describes each sound function:
  158.  
  159.  
  160. Function    Description
  161. CloseSound    Closes the play device after flushing 
  162. the voice queues and freeing the 
  163. buffers.
  164. CountVoiceNotes    Returns the number of notes in the 
  165. specified queue.
  166. GetThresholdEvent    Returns a long pointer to a threshold 
  167. flag.
  168. GetThresholdStatus    Returns the threshold-event status 
  169. for each voice.
  170. OpenSound    Opens the play device for exclusive 
  171. use.
  172. SetSoundNoise    Sets the source and duration of a 
  173. noise from the play device.
  174.  
  175. SetVoiceAccent    Places an accent in the voice queue.
  176. SetVoiceEnvelope    Places the voice envelope in the 
  177. voice queue.
  178. SetVoiceNote    Places a note in the specified voice 
  179. queue.
  180. SetVoiceQueueSize    Allocates a specified number of bytes 
  181. for the voice queue.
  182. SetVoiceSound    Places the specified sound frequency 
  183. and durations in a voice queue.
  184. SetVoiceThreshold    Sets the threshold level for a given 
  185. voice.
  186.  
  187. StartSound    Starts playing each voice queue.
  188. StopSound    Stops playing all voice queues and 
  189. flushes their contents.
  190. SyncAllVoices    Places a sync mark in each voice 
  191. queue.
  192. WaitSoundState    Waits until the play driver enters the 
  193. specified state.
  194.  
  195. End of Quote.
  196.  
  197. The standard driver for the internal speaker supports only
  198. one voice and only a subset of these calls (OpenSOund,
  199. StartSound, StopSound, SetVoiceSound and a few others),
  200. but it is sufficient to implement a lot of characteristic
  201. sounds and noises, much more than a simple beep. 
  202.  
  203.  
  204. >>>I dont generally count
  205. >>>stuff that isn't part of the Official Distribution, because if you
  206. >>>do that so can we and pretty soon it gets rediculous. (for instance,
  207. >>>now I can claim that the mac has a CLI- the MPW shell. :( )
  208. >>
  209. >>If it only uses a few bytes on the disk, is easily installable
  210. >>and simple to use, why not? :-)
  211.  
  212. >Because two can play at that game. We will be comparing constantly
  213. >moving targets.
  214.  
  215. On the other hand, comparing what a hardware *and* software
  216. supplier offers with something from a software only seems
  217. a bit unfair to me.
  218.  
  219. >>
  220. >>[...]
  221. >>>>>>Of course not! These include cheap accelerated cards, of course! :-]
  222. >>>>
  223. >>>>>Ah, you get the card separately them?
  224. >>>>
  225. >>>>Pardon? It was my intention to draw attention to the fact that
  226. >>>>"accelerated" doesn't necessarily imply "expensive", in the
  227. >>>>PC world. There are expensive accelerator cards, and there are
  228. >>>>cheap accelerator cards.
  229. >>
  230. >>>Ah; Are they cheap compared to non-accelerated cards? (I would be
  231. >>>slightly surprised if this were so. No, make that stunned)
  232. >>
  233. >>No. But the current bunch of cheap accelerated video cards are
  234. >>much more in the price range of non-accelerated cards than
  235. >>in the range of expensive accelerated cards. I.e. you can
  236. >>buy non-accelerated cards from 150 to 800 DM (1.6 DM == 1$),
  237. >>cheap accelerated cards starting from 350 DM, while expensive
  238. >>ones may easily cost 3000 DM and more. This is because the
  239. >>latter ones where built for expensive CAD workstations 
  240. >>built from PC hardware. These cards usually came with
  241. >>AutoCad drivers, and only just recently with Windows
  242. >>drivers. The cheap accelerators are either one-chip
  243. >>reimplementations of IBMs 8514 device, or where constructed 
  244. >>with Windows in mind. 
  245.  
  246. >Whats the difference that makes for the price difference?
  247.  
  248. Specialization and economics of scale.
  249.  
  250. >>[...]
  251. >>
  252. >>>[deletia- windows is not crash-happy unles you multitask too much]
  253. >>>>>The Mac was designed so that protecting it is really hard- there is
  254. >>>>>no segmenting mechanism, you'd need to use the PMMU. You can't protect
  255. >>>>>teh system because apps are allowed to access it (allocate memory
  256. >>>>>and use it) and sometimes need access to OS data structures (to which
  257. >>>>>handles are returned by routines like GetDeviceList, GetWMgrPort etc)
  258. >>>>>and so forth. I understand Windows does catch it if an app uses an INVALID
  259. >>>>>segment selector; shouldn't Windows be tougher because of this?
  260. >>>>
  261. >>>>It not only catches invalid selectors, it catches invalid accesses
  262. >>>>(write if only read is allowed, access beyond the limit), too.
  263. >>>>It fails to use a separate local descriptor table for each task.
  264. >>>>OS/2 1.x does that, Windows 3.x doesn't.
  265. >>
  266. >>>Why does this make a difference? I dont quite see it.
  267. >>
  268. >>With a separate LDT for each task, a task has only access to its
  269. >>own data structures and those which the OS made gobally available
  270. >>via the GDT. With a "global" LDT, each task has access to all
  271. >>the above, and to the data structures of all other tasks, in
  272. >>addition. In both cases, a task will get an memory access
  273. >>fault if it uses an invalid selector number or an offset outside
  274. >>the bounds of a valid selector. But the set of valid selectors
  275. >>is different. In the former case, it's G+Tn for task Tn, in the
  276. >>latter case it's G+T1+T2+..+Tn. 
  277.  
  278. >Oh, so with local tables each app has teh same access any
  279. >other app does?
  280.  
  281. With a LDT (a local descriptor table) which isn't changed
  282. during the task switch (the WIndows method), all apps
  283. have the same access. There is still protection - Windows
  284. can protect its own data structures, and a task has to
  285. know the other tasks selector numbers in order to access
  286. that memory, but there could be more protection.
  287.  
  288. >[deletia- protection]
  289. >>>>Well, any UAE is a proof that Windows has at least a little bit
  290. >>>>of memory protection. That most people don't get that right,
  291. >>>>and blame the messenger doesn't change that in any way.
  292. >>
  293. >>>And this is the thing; as you say Windows was designed in such a way
  294. >>>to be sturdier that the Mac this way. So why is it (Generally)
  295. >>>percieved as being crash-happy?
  296. >>
  297. >>I don't perceive it that way.
  298.  
  299. >Ok. Nifty. So you dont know why people persist in saying
  300. >it is? (or is it just the Great Machead Conspiracy?) :)
  301.  
  302. I have seen MFT crash, MVS crash, BS2000 crash, CP/M crash, 
  303. TSO crash, Unix crash (various flavors, of course), I
  304. know how it feels if DOS, Windows, OS/2 or the Mac OS crash.
  305. I even know how to crash most of them, and how to avoid
  306. it, and that this is simple on some systems, and difficult
  307. on others. I don't think that it is more easy to crash
  308. Windows than the Mac OS, or that it is more difficult
  309. to avoid.
  310.  
  311. [...]
  312.  
  313. >[deletia- the error of my ways. Ive already seen it.]
  314.  
  315. >>>I dont quite see how this works. Where do the resources
  316. >>>go? ARe they appended to the end or something?
  317. >>
  318. >>Exactly. If I remember correctly, the resource part
  319. >>comes first, but I could be wrong. I don't care, because
  320. >>it's the tools business to know that. 
  321.  
  322. >Hmm.. how can you execute it then?
  323.  
  324. Execute what? A program is excuted by using one of
  325. the API calls to load and run a program. A library
  326. is accessed using the LoadLibrary API call.
  327.  
  328. >Resources wont run..
  329.  
  330. [...]
  331.  
  332. >[deletia- resouce modification]
  333. >>>>Hm. Perhaps it wasn't such a bad idea that the Windows API doesn't
  334. >>>>contain calls to modify resources ...
  335. >>
  336. >>>Hmm? Me no get it.
  337. >>
  338. >>Selfmodifying programs isn't a good idea, generally.
  339.  
  340. >Do you mean "always" or "usually"? Ill buy the second but not he
  341. >first.
  342.  
  343. Always. A program can generate another program and run it 
  344. after creation. But as an general option provided by a high level
  345. interface, it is a bad concept.
  346.  
  347. >[deletia- resources stuff]
  348. >>>Just what are extended attributes? Ive heard of them, and they
  349. >>>sounded a little like resources, but I didn't quite get it.
  350. >>
  351. >>They where invented with HPFS for OS/2 1.x. In principle, its
  352. >>just a name=value table attached to a file. I.e. you have 
  353. >>one byte stream plus an arbitrary number of (name,value) pairs
  354. >>in a file. NTFS generalizes this a bit, by providing multiple,
  355. >>named and typed streams within a single file. A stream has
  356. >>a type (data, extended attribute, security data or alternate data),
  357. >>a size and a name. Unfortunately, the current (non-)release of
  358. >>Windows NT doesn't implement much of this, yet. 
  359.  
  360. >What can the values be? Just anything? Are the names
  361. >strings?
  362.  
  363. As far as I know, yes, for both questions. HPFS has a
  364. limit of 64K for the values, if I'm not mistaken.
  365.  
  366. Wolfgang Strobl
  367. #include <std.disclaimer.hpp>
  368.