Live data from Hacker News

Operating Systems: From 0 to 1

tuhdo.github.io

61–70 of 82 posts

Re: Operating Systems: From 0 to 1

#61
post #15

From the book: "If a programmer writes software for a living, he should better be specialized in one or two problem domains outside of software if he does not want his job taken by domain experts who learn programming in their spare time." Seems a bizarre sentiment, but after reading this sentence, I feel like I really wanna donate some money to the guy. If he gives a way I will surely do.

The replies to your comment took a turn to whether we will need programmers or we won't need programmers in the future, let me take it in a different direction.

I think what he's explaining is that for most (maybe all? no empirical evidence to back this up) programming and computer software in general is a means to solving a problem.

Operating Systems solve the problem of needing a foundation in which to develop higher-level tools that enable computing. Whether the higher-level problems are complex astrophysics calculations or hailing a ride, as you travel down the stack, each piece of software is solving some problem domain.

Point of this sentence is to say, as you move forward in your career, you (usually?) develop knowledge of an industry, a customer base, a constituency or some other problem domain in which you combine your skill in engineering with your knowledge of the domain.

If you don't do this, and you say "I can do anything but I have no special knowledge of any problem" then it's more likely a person with both problem-specific knowledge and engineering knowledge will be given the job.

However, there are so many problem domains in the world of computing, it's very easy to pick one or two that interest you personally.

Re: Operating Systems: From 0 to 1

#63
post #15

From the book: "If a programmer writes software for a living, he should better be specialized in one or two problem domains outside of software if he does not want his job taken by domain experts who learn programming in their spare time." Seems a bizarre sentiment, but after reading this sentence, I feel like I really wanna donate some money to the guy. If he gives a way I will surely do.

Programming is an analytic process, gathering requirements, understanding or creating a process, and translating that into the language that computers understand. Only the last bit is likely to be made simpler for non-programmers in the near future. So "programming" is a skill on its own, rather like "management".

Re: Operating Systems: From 0 to 1

#64
post #22
post #6

Earlier quoted context omitted.

Maybe not exactly what you're looking for, but here's a linux specific ebook similar to this[1] [1]: https://0xax.gitbooks.io/linux-insides/content/

Well, the book is not Linux-specific but only leverages Linux as a development environment.

I feel like it focuses on a lot of linux specific details that a OS agnostic book would when using linux as a 'development environment' definitely wouldn't.

There are many topics other OSes like Windows and Solaris do differently and talking about them even for a little bit would be beneficial, but I haven't seen any trace of it.

Search for Windows, Solaris, shows up nothing, and search for unix shows a single page about unix signals.

Re: Operating Systems: From 0 to 1

#65
post #58

Earlier quoted context omitted.

not OP, but one thing we as developers should recognize is that programming itself is likely to become merely a skill like operating a spreadsheet or typing. In much the same way, writing was once a skill available (or at least, practiced) by a very small subset of people, and the spread of literacy made the job of "scribe" largely irrelevant over time. Children today are learning how to program—perhaps not yet in th…

Well, typing is more of a motorical skill than programming. Almost everyone can learn to drive a car (manual gearbox) but the same could not be said for programming where problem solving, logic and intelligence is a must. But with that being said, people from other professions could still learn how to program and do it well. Maybe you think of a programmer as person that is just typing in the program designed by some…

I think a programmer is someone who writes programs, regardless of the quality of the code. Substitute spreadsheets for typing if you think its more appropriate. Not everyone with domain expertise knows how to use a spreadsheet, and not everyone who uses spreadsheets uses them as well as someone that, for example, writes software for a living (and not all of the latter use it as well as someone who only uses spreadsheets!) But good luck finding someone who's only job is getting hired to code up a spreadsheet. The vast majority of uses are to allow someone with just enough skill to create something that performs a job function in an automated way, which in turn makes another job that much easier. Once upon a time, it would have been a persons job to perform the calculations and updates that a spreadsheet makes trivial.

It would be foolish to think that the same will never happen to the vast majority of our jobs.

Re: Operating Systems: From 0 to 1

#66

Earlier quoted context omitted.

not OP, but one thing we as developers should recognize is that programming itself is likely to become merely a skill like operating a spreadsheet or typing. In much the same way, writing was once a skill available (or at least, practiced) by a very small subset of people, and the spread of literacy made the job of "scribe" largely irrelevant over time. Children today are learning how to program—perhaps not yet in th…

While a agree to some extent and have even explored the idea of how my programming skills could be augmented with other non-programming jobs I still feel that for the foreseeable future we will have programmers. I see lots of jobs being done by non-programmers that would be done much much better had that person been a programmer. The future will undoubtedly be full of people in traditionally non-programming jobs with…

I don't think that day is as far off as you seem to. Yes, there are some kinds of programming which require deep expertise in programming itself, but these jobs are far from the majority.

If you've ever read Vinge's _Deepness in the Sky_, recall that the protagonists occupation for a period of time was that of a code archeologist, attempting to collect, categorize, and understand code that was centuries (or was it millenia?) old... We may be a ways off from that, but I don't think its far from the truth of the future.

Re: Operating Systems: From 0 to 1

#67
post #41
post #32

Earlier quoted context omitted.

The A20 gate would affect both real and protected mode, so to be truely compliant, you should be opening it even for a protected mode OS. It was originally a purely hardware hack forcing an address line(A20, or the 21st address line) to stay low, thus "wrapping" addresses from 1mb-2mb to 0-1mb, so it would have affected real or protected mode identically. On modern hardware, there is a chance that A20 is (against the…

> On modern hardware, there is a chance that A20 is (against the accepted spec) default open, or possible not implemented. To nitpick on this a little bit (consider it as a polite supplement): In Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3 (3A, 3B, 3C & 3D): System Programming Guide in section 8.7.13.4 External Signal Compatibility one can read (emphasis by me): "A20M# pin — On an IA-32 pro…

fair point, I hadn't bothered to look more, but it's still true that A20(when implemented) gates both real and protected modes, and therefore "ignoring it to focus on protected mode" is invalid

Re: Operating Systems: From 0 to 1

#68

Every time an OS book (about weekly) is posted on HN, I immediately want to jump all over it but I gently remind myself to finish: CMU's Computer System's from a programmer's perspective and Elements of computing (nand2tetris).

It seems you've already decided that these are worth reading, but in case you want some motivation, I had CS:APP as my textbook last term and I thought it was quite nice. I also worked through TECS several years ago and it was also a great resource. CS:APP is quite dry but by the end of the course I was able to write a real memory manager in C, which was super fun! If you're ever looking for an internet book reading buddy, I also need motivation. I worked through TECS with a friend over a few weeks and found it very useful to have someone else seeing and working through the same problems.

Good luck!

Re: Operating Systems: From 0 to 1

#69
post #58

Earlier quoted context omitted.

Well, typing is more of a motorical skill than programming. Almost everyone can learn to drive a car (manual gearbox) but the same could not be said for programming where problem solving, logic and intelligence is a must. But with that being said, people from other professions could still learn how to program and do it well. Maybe you think of a programmer as person that is just typing in the program designed by some…

I think a programmer is someone who writes programs, regardless of the quality of the code. Substitute spreadsheets for typing if you think its more appropriate. Not everyone with domain expertise knows how to use a spreadsheet, and not everyone who uses spreadsheets uses them as well as someone that, for example, writes software for a living (and not all of the latter use it as well as someone who only uses spreadsh…

I see that it could be true for many desktop and mobile phone applications but who should develop the operating systems, embedded applications and backends? It is a full time job just to learn all the programming languages, libraries, frameworks, standards, protocols and other related things.

Re: Operating Systems: From 0 to 1

#70
post #69

Earlier quoted context omitted.

I think a programmer is someone who writes programs, regardless of the quality of the code. Substitute spreadsheets for typing if you think its more appropriate. Not everyone with domain expertise knows how to use a spreadsheet, and not everyone who uses spreadsheets uses them as well as someone that, for example, writes software for a living (and not all of the latter use it as well as someone who only uses spreadsh…

I see that it could be true for many desktop and mobile phone applications but who should develop the operating systems, embedded applications and backends? It is a full time job just to learn all the programming languages, libraries, frameworks, standards, protocols and other related things.

Well, the "programmers" in operating system and embedded domains are usually electrical engineers who learned how to write code, just enough to apply their domain knowledge. A programmer in the usual sense, that is someone graduated from pure software school, will have a hard time competing with those people.
Post reply on HN