So you already touched on this aspect also. The fact that
more and more we are seeing end users using mobile platforms.
>> Yeah.
>> And mobile platforms are entirely in the cloud.
And so as this future revolution happens in the data
center things are changing. What do you expect as changes
that are happening at the consumer end of these services?
>> To be honest, the consumer end is driving most of this.
>> Mm-hm.
>> And the classical enterprise IT is following.
>> Mm-hm.
>> So the, the consumer revolution in the mobile
And small devices of the like, are driving much of
this criteria. And the benefit then as accruing over time
to the usage of the systems. So, you want examples.
>> Right.
>> With more and more collaboration needs, or sharing of state.
You're going to put more state in the back end. To be
able to share them with multiple users. Or they need to
do things beyond just messaging, you know, sharing, sharing data sharing
state and the like. You'll find out that data will flow
quite a bit from the devices [INAUDIBLE]. And there are physics
however, the device cannot be very big, the battery or device
cannot be very big, so the device can only do so
much. So the back end has to do it for you.
>> Right.
>> And finding the balance between them
will change over time as well, of course.
>> But there's also brings an interesting, concern,
that is, as you said, there's going to be
more that's happening in the back end, right?
Because the mobile devices may not be able to
do it all. And you also mentioned that,
there may be collaboration among the mobile devices. And
a lot of the things that happen in
mobile devices today are streaming kinds of things, and
how ready is the cloud for dealing with that kind of
traffic. And in particular you also mentioned that cloud is architect
ed today as throughput oriented not so much latency oriented. So
what do you see as changes that might be coming [UNKNOWN]? [CROSSTALK]
>> The different type of streaming order. Okay, so for the,
the bulk of inter traffic [UNKNOWN] steaming of pre recorded material.
And the way that Internet can handle it at large as you know its
[INAUDIBLE]. So you have circle cs networks.
Content solution networks. Where the content is
told that they edge closer to the user and once you ask for a
movie and you'll be able to ask for it the second time is almost free
and by and large that's all working practically. I mean
um,uh, depending where you are in the world, Netflix for
example in the US is very big and so forth.
To do more real time, it becomes more interesting, and more
conversant to be honest. And I think, I think things
will change as well. But I have to tell you,
I am myself amazed how it works are already in
that sense. The latency aspects are, have to do with Ultimately
with physics. So there will be cases where if
your application requires a lot of chatty, lots of protocol
between a component and another component, you have to
think seriously about where they should land. If it's very
chatty and physics, as the same, we cannot change
the laws of physics, They have to be closer to
each other. So decomposing the app, whether it be, be
to [INAUDIBLE] time live streaming of data or video, whatever,
is very important to put chatty stuff and where they
should land, which is where they can withstand the long distance.
>> Right, but that also brings up the
question of data centers as they are architecture today.
>> Yes
>> They are, as you mentioned, they're in some darkroom somewhere. But if my
mobile device is latency sensitive, shouldn't it
be closer to where the mobile device is?
>> True. And there will be multiple levels.
So you want put some competitional on device. That's, if
it, if the latency between two components is so critical,
there's no way you can cross any wire So some
will live in the device itself. Some will live on the
edge of the network before we get to the actual
DC. And in, increasingly, there are mega services on the internet.
Don't directly hit, you don't hit the DC directly. You
go to a net somewhere. And you do also when optimizations.
TCPIP optimizations. For example, You may land to an edge
closer to you. And there the connection between that base and
the actual DC yard, I get to create over common [INAUDIBLE]
connections. So tricks are definitely
important. Latency hiding tricks are important.
>> So this next question I'm going to ask
you is more related to. From the students' perspectives.
You know, the students that are taking
this course, this is an advanced operating
systems course, and and these students, they
may be aspiring to work in leading software
companies such as yours. What would be
your advice to students that are taking this
course? Specifically can you talk to the
students about, the opportunities that exists, for O.S.
designers today in the industry space. And how
the students should prepare themselves for such opportunities.
>> Sure, I'll be honest with you, you may not design new O.S. from scratch
We have a bunch of them already. But every concept you're learning here will be
needed, more than beneficial, needed, when you
move up and down the stack. If you're
doing an application, like much of the discussion we had right now, a high scale
application, it's, it's no longer writing an application through on
a machine by itself, displaying to a screen. All the
issues we touch on, you have to worry about, you
have to know about them. You have to know about
caching and scale, you have to know about synchronization, data
replication, handling failures, so all these concepts you have in
a classic of OS sense, are directly applicable regardless where
you live up and down the [UNKNOWN] So I'm convinced
that with out a fund, a strong foundation operating
systems and a few other topics, programming languages and
the like. One cannot handle or build those big
applications. You could do some simple work programming, do some
java script and a nice animated screen, don't get
me wrong, this all is important. But if you
want to do the real scalable services where the
entity's moving you have to have the foundations. More generically,
you have to also use the information you learned here and be ready, ready
to learn more. And to apply it
in different domains. So the classical papers that
you taught me way back when are still relevant. But as we discussed, you
may have to apply them differently to
morph them, evolve them, into newer [INAUDIBLE] areas.
>> So I want to make sure that the students get an idea
about specific things that you think that they should get when they're
in school. What are the things if you can name, specify, I
mean, specifically can you name a few things that you think are
important for students to get while they are still a student here.
>> Mm-hm. College time. The time you are taking right now to learn
all this stuff is a most exciting time to be honest. Because you
can keep an open mind. And go white. So learn as why I think that's possible.
You want specific things in computer science, let's
be specific here. Definitely operating systems. Distribute systems
and definitely programming language as a background. I
think they're very important. The foundations for any
platform level type of work if you [UNKNOWN]...
Know the classical information, but also know how
to apply them and what you actually have in
every day and the like. What else would I want
to do? Frankly beyond CS, I would also try
to get other back ground that complement what I do.
>> Mm-hm.
>> Even the things like humanities and the like, that are
actually important because when you move up and you want to work
in industry and the like. Much what we do, we actually write
code. We design code. We make software. But we also, no longer
build things by ourselves. Now the systems you have
at your disposal aren't built by one person, they
are built by teams. So learn how to work
in teams. Learn how to deal with other people like
you who have to collaborate. And, build a software
collage. Some districts can only, we often, look, you may
only learn the basics in college. But, as you
go forward, you know, apply the large software. And also,
don't shy away from the tough assignments, you know. Push
the envelope while you can right now. Then, come back and
you can really apply them as you go forth. Lastly a
good foundation in just knowing the basics of computer science, basic
you know, algorithm, algorithm design analysis is actually very
important. So the more advanced topics, you never did
ask you in industry what np is equal to p, and go solve this one or solve that.
But you will have to reason almost every day
about the basic complexity of an algorithm, or to
basically to apply a certain technique on the like.
And the foundation algorithms are really important as well.
>> So outside of school, though they are in
school, there's a chance for them to, to hone their
skills overall. What do you think of things
that they should be absorbing outside of school?
>> I would start the habit now, outside
of school, to keep track what's happening out there.
If you join [UNKNOWN] tomorrow, you will, in a
sense, have stopped learning what the [UNKNOWN] stuff is and
you start going and learning what's happening out there. And
things move very quickly out there as you know. So
start right now understanding what's happening in general. So
know the fundamentals but also know how people are applying
them. Be curious. I mean I sometimes bring up a
browser look at a pic and say how they done
this thing and oh it's Ajax doing dress for APIs and
so forth. So learn to be curious from right now and learn
to link what you do with what you see around you
as well. And that habit has to start early and don't stop
it. Keep it going. The worst thing that can happen is
for you to go to industry and to spend five years doing
the same thing and nothing but that. You have to be
able to be curious and see around you as well. And that
habit has to be started right now.
>> So the next question is very specific to you and your own journey.
>From a student in the 80's to becoming a leader in your chosen field,
what are some of the skill sets you wish you had acquired when you're
still a student. If you reflect back, what are the things that you would have
done differently or learned differently as a student that might have helped you?
>> Honestly, I mean, I'll be quite honest
with you. I took the least amount of humanities
I could get, and I loaded my schedule with
CS and E,classes and math because that was the
fun stuff, the heavy stuff. And not go any
wrong this always important too, but take a balance
view to this. The humanity is all important knowing
what's really around you beyond just the actual chord
and the bits are very important. And the reason
is very simple really, which is a part of my
last answer. When you go out there and do
things, you'll be expected to lead. To work with others
and to tell them where to go, if you
will. So you can lead them or you can follow.
It's better to lead, to be honest. And to
lead, you need to have soft skills and an ability
to understand people. So learning about the humanities, learning about
critical thinking and writing. Had actually very important, and sometimes
we in Academia don't pay enough attention to these things, to be honest. We'll
be great to make sure you hone your skills in that space as well.
>> Mm-hm.
>> I mean a critical for example, in the US, a critical English writing class
may sound, you know, too much work, and why do I need this. But it can
really hone your skills for critical thinking,
critical analysis. Of the language. So, fast forward
20 years, or in my case more than that, and you have to send an email
explaining why something is going right, is
going wrong, et cetera. Conveying the message in
two paragraphs or to some busy people, that's
actually a skill that has little to do
with writing code, to be honest. But more of, can I put my thoughts down to
paper quickly and clearly and concisely? With softer
scales or in ethical scales are important too.
>> So, this is more of an advice from me of
professors like me from your experience. In your opinion, what you, what. How
do you think we can better prepare our students? To be ready for the work place.
>> There's a couple of dimensions. One is, just
to bring the last thought, and then we'll switch a
different point. One dimension is that in Academia, you, you,
you're going through a class, you're going to give a grade
to every student and the grade is his or
her grade. So in academia we basically look at
the individual performance, did I pass or not? Don't
get me wrong, the same happens in industry, but to
get through anything in industry, you have to collaborate.
So what's usually missing in, in, in, in the
more academic environment is how to build software, for
example, in a, and how to do the soft skills
for building software in a group. And those things
are hard to get, I know, in academia, but it
is something I wish we can get more at
the graduate, with that background, if you want. You typically
have something in you when you, when you're, you're
a good leader, but then when you go join a
company and the like, you have to go nurture
and do more of that. Otherwise, that really would happen.
Beyond that, there are some things which would be great
if you make sure that the students can push the envelope
in ways that otherwise we in industry cannot do. So make
sure they have in them the, ability to try things which
otherwise some of us will try it and say it doesn't
work. You know, I'm not jaded by that. So it's important
to instill in the students that, that, and I think you
do a good job of that, but it's important to remember
that, that, that to push the envelope. Because once you
hit industry and the like, you're going to find constraints. You
have to shift quickly. There's a deadline et cetera, and
you may forget about what's possible. Never forget what's really possible.
>> So, do you have any final thoughts that you want to share?
>> Again, thank you for the opportunity. This is great. I hope you enjoy his
class. I'm going to actually plan to take
it. I'm not going to take it for grades
ok but I'm going to go I want to see it. I'm looking forward to it.
I think, sir, it's a great thing you're doing. And I wish you real luck.
>> Well thank you so much, Yousef, for coming and joining us.
>> Thank you, thank you, sure.
>> And let's thank Youself for being
here and sharing his thoughts with you all.
>> Thank you.