home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   alt.os.development      Operating system development chatter      4,255 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,532 of 4,255   
   mutazilah@gmail.com to anti...@math.uni.wroc.pl   
   Re: ecosystem (1/2)   
   01 Dec 22 01:22:02   
   
   From: muta...@gmail.com   
      
   On Thursday, December 1, 2022 at 12:46:25 PM UTC+8, anti...@math.uni.wroc.pl   
   wrote:   
      
   > Well, is real OS the big thing is device drivers. If you   
      
   Ok.   
      
   > In compilers hard part is optimization. When I compare gcc-4.8   
      
   Ok.   
      
   > Both of the above are quite different than MSDOS, so let   
   > me mention another aspect. "Bug compatibility" with   
   > different system is hard.   
      
   Ok, thanks.   
      
   I'm happy to bypass all of those things, basically.   
      
   > For MSDOS there are some specific troubles:   
   > - interfaces were specified in assembler   
      
   Another problem I am happy to bypass by creating   
   an API.   
      
   > - OS hand to run acceptably on small and by modern standard slow   
   > machines   
      
   Slow should not be a problem for an OS. Applications   
   should be bottlenecked in the application, not OS calls.   
      
   And I'm also happy to bypass the "small" issue.   
      
   > do this and some that actually did. But there is also   
   > business aspect: Microsoft from the start used "tax" method.   
   > Namely, manufactur had to pay moderate fee for each PC they   
   > sold. So even if you got alternative to DOS you effectively   
   > payed for DOS.   
      
   I see.   
      
   > Of course, there is also issue of size of whole enterprise.   
   > MSDOS class system is approachable by single person, but not   
   > in a weekend (and probably not in a month). Most people   
   > lack sufficient motivation to spend needed effort given that   
   > quite good alternative (Free DOS) is available with sources.   
      
   Ok. Plus most people are unwilling to make the code   
   public domain.   
      
   > > Here is what I have for MSDOS for the 8086:   
   > >   
   > > PDOS/86 (OS): about 30,000 lines   
   > > PDPCLIB (C library): About 17,000 lines   
   > > SubC (C compiler): About 5,500 lines   
   > > as86 (assembler): About 13,000 lines   
   > > pdar (archiver): About 1000 lines   
   > > ld86 (linker): About 3000 lines   
   > > pdmake (make): About 2000 lines   
      
   > The line counts look a bit high to me, given limited functionality   
   > of what you have. Especially line counts for PDOS and as86   
   > look high.   
      
   Here are the biggest files in PDOS:   
      
   21/11/2022  09:38 am            20,480 ntdll.c   
   21/11/2022  09:38 am            23,724 format.c   
   21/11/2022  09:38 am            24,876 liballoc.c   
   27/11/2022  11:57 am            26,211 memmgr.c   
   21/11/2022  09:38 am            32,445 bos.c   
   21/11/2022  09:38 am            40,865 kernel32.c   
   21/11/2022  09:38 am            42,017 minifat.c   
   25/11/2022  04:59 pm            46,549 pos.c   
   25/11/2022  04:48 pm            47,529 int21.c   
   21/11/2022  09:38 am            58,808 exeloado.c   
   25/11/2022  05:00 pm            91,099 pcomm.c   
   27/11/2022  11:49 am           139,899 fat.c   
   30/11/2022  12:33 pm           179,584 pdos.c   
      
   pdos.c is 6500 lines (that includes VM support which   
   I have conditionally disabled). fat.c is 3800 lines (that   
   includes LFN and FAT12-32).   
      
   pcomm.c is the command processor.   
      
   It all adds up.   
      
   None of it is test code.   
      
   > > I am not very good with algorithms,   
      
   > Do you really mean "I am not very good with programming"?   
   > When programming you all time deal with algorithms.   
      
   Possibly. I'm pretty good at debugging, and can do it   
   at the assembler level. In a typical workplace I'm the   
   go-to guy. I make things work. But that's when an   
   existing algorithm is not working due to a wild pointer   
   or buffer overflow or something, not understanding the   
   business logic. If the "business" is actually a utility, I   
   can understand that, e.g. the most recent bug I fixed in   
   a commercial setting was file synchronization. They   
   had put in a 2 second delay to ensure processes   
   didn't clash with each other. Another programmer had   
   "solved" the problem by creating a hash to make   
   filenames unique, which basically meant we were now   
   playing Russian Roulette, and the manager had sensed   
   that and asked me to look at it. I saw the original 2   
   second delay, ie the original design, and wondered why   
   it wasn't working as designed. It took a while because   
   it all looked correct to me. And normal testing showed   
   that it was working - the second process dutifully queued   
   on the first. I wanted to see evidence of genuine clashing,   
   because I didn't believe it wasn't working. I saw the   
   evidence, so switched belief. I eventually figured out that   
   they were deleting the original file after it had served its   
   purpose, and that process of deletion was allowing a   
   second task to reuse the same filename if the timing   
   was right. I can't remember the exact algorithm. The   
   only way I could solve it under the original design was   
   to not auto-delete all the files. I think I had to leave one   
   per "group" in /tmp. Like I said, I can't remember exactly.   
      
   And here's a comment from someone in one of the groups:   
      
   https://groups.io/g/hercules-os380/message/16004   
      
   As I said, I encourage you to work on your PDPCLIB. You've obviously   
   put a huge amount into it already; you are without question one of the   
   most productive people I know, even when I disagree with what you're   
   doing. There are all kinds of things you could do that would further   
   the ability to port existing programs. Just because I think many of   
   your proposals are wacky doesn't mean that I don't respect your work   
   and skill and "get it done" approach.   
      
   (That's an MVS-related group, and that was after he watched me   
   work on PDPCLIB and related for about 15 years)   
      
   Note that I wanted PDOS to work on S/370 too, and was   
   looking for a common code base for all my systems.   
      
   It took all that 15 years, and more, to understand AMODEs   
   properly to the point that I could design PDPCLIB "properly".   
      
   A lot of the things I was doing I was told were impossible.   
   Even by the people who were doing some of the coding.   
   Gerhard was writing the 370 assembler in PDPCLIB and   
   constantly telling me that it wouldn't work, and then it   
   started working, and I showed him the result, and he   
   mustn't have realized what I was showing him, and he   
   still insisted that it wouldn't work, and I told him I was   
   surprised that he was still saying it wouldn't work when   
   I had just showed him that it was already working.   
      
   > Frankly, it seems that you spent quite a lot of time to   
   > get to the point were you are now. And IIUC substantial   
   > part of your codebase came from other folks.   
      
   Probably about 30% came from others. I managed to get   
   FAT12 and 16 reading, but writing was terrible. I managed   
   to get FAT16 writing working after many years. Then   
   someone else (Alica) came along and voom, FAT32 existed,   
   writing of all worked, LFN worked.   
      
   The transition into PM32 came from someone else too. I   
   wrote the code, but it wasn't working. Someone else   
   figured out what I was doing wrong. There were no   
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca