W. Richard Stevens Biography

作者从大学时期接触Fortran开始,逐渐对编程产生浓厚兴趣,经历了从使用PDP-8到为大型机编写操作系统的过程。在职业生涯中,作者不仅掌握了多种编程语言和技术,还见证了从Fortran到Pascal再到C语言的转变,并最终沉迷于Unix系统。

W. Richard Stevens Biography

My first encounter with computers was in 1968 as a Freshman engineering student at the University of Michigan, taking a required Fortran IV class. Although I was an Aerospace Engineering major, this class made me realize that I enjoyed my programming class more than my other classes. I kept taking all the programming classes that I could as electives, and one of the really neat things about the U. of M. was that I could take all the computer classes that I wanted (undergrad or graduate), as long as I had the background. In my second programming class we got to write PDP-8 machine code (not assembler), running our programs on a PDP-8 simulator that ran on an IBM 360. My next programming class (CCS 473), was taught by Bernard Galler and covered IBM assembler and Snobol 4. Next was CCS 573, taught by Larry Flanigan, and we got to write an operating system for an IBM mainframe in assembler, and run it on its own virtual machine on the 360/67.

I had two jobs while an undergraduate: I was a programmer for the Astronomy Department, programming a PDP-8 at their McMath-Hulbert Observatory near Pontiac, Michigan, and I was a counselor at the Computer Center. The latter was one of the more prestigious jobs on campus, paying as I recall around $4/hour in 1973. One had to take a test to get the job, and not too many undergrads passed the test. We were then the answer people at the Computing Center for anyone using MTS (the Michigan Terminal System). One of the fun projects that I did for the Astronomy Department was writing a program that ran on both the IBM mainframe (for the actual computing) and a PDP-9 (an 18-bit system) that did all the interactive display and input. The PDP-9 operating system was written by Jim Blinn, who went on to become famous in the graphics field.

After graduating in 1973 I went into the programming field. It was not a good time for Aerospace Engineers (Boeing was laying off thousands of them) and I found programming more fun anyways. I drove across country in my yellow 1970 VW bug (which I drove until 1986) to Los Angeles, having had enough cold weather in 5 years in Ann Arbor, and found a job within a few days. I worked for the M & M Computer Division of Singer Corp. in the city of Orange. (Yes, the sewing machine people. Every company was trying the computer field back then. M & M stood for "Murphy and McKee", the two founders who sold the company to Singer around 1973.) We made RJE stations (Remote Job Entry), which was a fancy name for a minicomputer with a card reader, teletype, and line printer, that connected to a mainframe across a network. Lots of companies couldn't afford their own computers so they used an RJE station to send jobs to someone else's mainframe. We used Data General minicomputers and wrote the operating system (in assembler, of course) that handled all the devices, including the network communications (9600 baud synchronous was fast then). Standard memory was 4096 16-bit words. As I recall the typical system required about 3 boxes of punched cards (2,000 per box?). Dropping the box of cards on the floor was a no-no.

While I was a programmer Monday-Friday 8-5, I flew during the remaining waking hours. I had gotten my private pilot's license in 1968, between high school and college, but rarely had the time or money during college to fly. So as soon as I got a full-time job I got my instrument rating, commercial license, instructor's license, multi-engine rating, instrument instructor's rating, multi-engine instructor rating, and all three ground instructor ratings (basic, advanced, and instrument). I would leave work at 5 pm, stop at a Jack in the Box off the Riverside Freeway and pick up dinner, then to the Fullerton Airport for a student at 5:30. Two nights a week I taught ground school from 7-10 pm, and naturally spent most of the weekend at the airport. The things we do when young and single.

In 1975 I decided that there was no future in flying (airline jobs were impossible to get, and who wants a job where you are judged only by seniority?) and headed off to grad school. I headed back to Ann Arbor, still having enough contacts there to get my job back at the Computing Center, and liking the city a lot. But 2 weeks before I left California I had a job interview arranged by an old friend from the U. of Michigan Astronomy Department for a programming job at Kitt Peak Observatory in Tucson (where my friend was working). The interview went well, but they couldn't give me a final answer for a few weeks. At that point in my life everything I owned fit into my VW bug, and away I went to Ann Arbor. When I got to Ann Arbor I checked into a hotel, called Kitt Peak, and they offered me the job. One side benefit was that working at Kitt Peak I got to attend grad school at the University of Arizona for $5 per semester. So the choice was living in Ann Arbor as a penniless grad student, or working full-time in Tucson (sunshine, warmth) and going to grad school for free. Away I drove in my VW bug for Tucson.

I was at Kitt Peak from 1975 until 1982 and my programming included both real-time data acquisition systems (we used the Forth language on Varian 620/f minicomputers) and Fortran number crunching on a Control Data 6400 mainframe. In 1975 at an ACM conference that I attended I bought a copy of the original Jensen and Wirth "PASCAL: User Manual and Report". I really liked Pascal, compared to the Fortran that I was used to, and was able to get a free Pascal compiler for the CDC mainframe to play with at Kitt Peak. But trying to get scientists and engineers to give up Fortran was a losing battle. I later got a copy (2nd printing) of the 1978 Kernighan and Ritchie C book, and remember reading it while riding the Kitt Peak bus one day between Tucson and the mountain. Wow, this new language was even better than Pascal! I had also read the CACM article by Ritchie and Thompson in 1975 on Unix, and figured it was time to try to get a Unix system at Kitt Peak. The first step was to get an educational Unix license (commercial licenses were $20,000, I think, for the Seventh Edition, aka Version 7) and Kitt Peak was able to do that through the University of Arizona, thanks to Dave Hanson. There was also an ongoing battle at Kitt Peak to get rid of the Varians and move to PDP-11s (what everyone else was using) so we started obtaining some PDP-11s and somehow a PDP-11/60 was allocated for Unix. We used to boot the PDP-11 half the day running Forth, and the other half of the day running Unix. I got addicted to Unix very quickly.

In the Spring of 1980 I sat in on Dave Hanson's graduate class that went through the Unix Version 6 source code (using the Lion's book). At the same time I was doing my graduate research in image processing at the Univ. of Arizona, and the Digital Image Analysis Lab (DIAL) had a PDP-11/70 that my advisor (Bob Hunt) let me run Unix on in the evenings. First I had to find a version of Unix that would boot on an 11/70 with an RM03 disk (the release tape from Bell Labs did not boot on this disk, because they didn't have any). I remember going to Dave Hanson's office to ask him. He didn't know of such a boot tape, but turned around to his terminal and typed out a quick email to Dennis Ritchie, asking him. This was 1980, and my first experience with email. The message went out that night (uucp, when the phone rates were the lowest), and we had an answer the next day. No luck at Bell Labs. I then went to the Usenix meeting in February 1980 in Boulder and found a person there who would send me a bootable tape for an 11/70 and an RM03: it was Brian Harvey from Lincoln-Sudbury Regional High School in Massachusetts, the logo wizard. Around this same time at Kitt Peak we started buying some VAXes, and the battle was whether to run VMS or Unix on them. We ended up with both, but it was clear to me that given a choice, Unix was the programming environment that I wanted to work with.

In 1982 I finished my Ph.D. For a few months prior finishing my dissertation a friend who had been a professor of mine at the Univ. of Arizona, but had left to join a health care startup in Connecticut, kept calling me at Kitt Peak with Unix questions. They were considering doing all software development at the startup in C under Unix. He finally said he was tired of calling me all the time, and would I like to move to Connecticut and lead up their software team. My wife agreed, so in December of 1982 I turned in the final copy of my dissertation on a Wednesday, the packers came and packed the house on Thursday, they loaded the moving van Friday, and we left Tucson on Saturday. The next 8 years were spent working in New Haven for Health Systems International, which was lots of fun, but that's another story.

**项目名称:** 基于Vue.js与Spring Cloud架构的博客系统设计与开发——微服务分布式应用实践 **项目概述:** 本项目为计算机科学与技术专业本科毕业设计成果,旨在设计并实现一个采用前后端分离架构的现代化博客平台。系统前端基于Vue.js框架构建,提供响应式用户界面;后端采用Spring Cloud微服务架构,通过服务拆分、注册发现、配置中心及网关路由等技术,构建高可用、易扩展的分布式应用体系。项目重点探讨微服务模式下的系统设计、服务治理、数据一致性及部署运维等关键问题,体现了分布式系统在Web应用中的实践价值。 **技术架构:** 1. **前端技术栈:** Vue.js 2.x、Vue Router、Vuex、Element UI、Axios 2. **后端技术栈:** Spring Boot 2.x、Spring Cloud (Eureka/Nacos、Feign/OpenFeign、Ribbon、Hystrix、Zuul/Gateway、Config) 3. **数据存储:** MySQL 8.0(主数据存储)、Redis(缓存与会话管理) 4. **服务通信:** RESTful API、消息队列(可选RabbitMQ/Kafka) 5. **部署与运维:** Docker容器化、Jenkins持续集成、Nginx负载均衡 **核心功能模块:** - 用户管理:注册登录、权限控制、个人中心 - 文章管理:富文本编辑、分类标签、发布审核、评论互动 - 内容展示:首页推荐、分类检索、全文搜索、热门排行 - 系统管理:后台仪表盘、用户与内容监控、日志审计 - 微服务治理:服务健康检测、动态配置更新、熔断降级策略 **设计特点:** 1. **架构解耦:** 前后端完全分离,通过API网关统一接入,支持独立开发与部署。 2. **服务拆分:** 按业务域划分为用户服务、文章服务、评论服务、文件服务等独立微服务。 3. **高可用设计:** 采用服务注册发现机制,配合负载均衡与熔断器,提升系统容错能力。 4. **可扩展性:** 模块化设计支持横向扩展,配置中心实现运行时动态调整。 **项目成果:** 完成了一个具备完整博客功能、具备微服务典型特征的分布式系统原型,通过容器化部署验证了多服务协同运行的可行性,为云原生应用开发提供了实践参考。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值